Дублирующая установка ОС

Я пытаюсь скопировать мою установленную операционную систему сервера локально на компьютер, поэтому, если что-то пойдет не так, у нас будет резервная копия. Я уже установил ту же версию ОС, что и в нашей действующей системе, на этом сервере, но я хочу убедиться, что смогу скопировать все те же пакеты и максимально дублировать среду. Это быстрое решение, а не постоянное решение.

У меня есть резервные копии всех файлов конфигурации Jungle Disk а также файлы сайта и все такое. Но я хочу отразить также и пакеты, которые установлены, и хотел бы иметь возможность выполнять как можно меньше работы. Любой совет?

Обновить

Импорт настроек debconf Было показано 3 ошибки...

warning: Unknown type terminal, skipping line 56
warning: Unknown type error, skipping line 76
warning: Unknown type detect-keyboard, skipping line 252

Вот некоторые фрагменты из моего файла:

# 
tasksel tasksel/terminal        terminal

# Detecting your keyboard layout
console-setup   console-setup/detect    detect-keyboard

# Failure restarting some services for PAM upgrade
libpam0g        libpam0g/restart-failed error

На самом деле я получил около 8 других ошибок, все были Unknown type error и обеспокоен стабильностью этого зеркала, если я продолжу

3 ответа

Решение

В системах на основе Debian, таких как Ubuntu, можно очень близко дублировать установку программного обеспечения с одного компьютера на другой, используя инструменты управления пакетами. Допустим, что MachineA - это исходный сервер, который вы хотите зеркалировать, а MachineB - это сервер, который вы хотите стать зеркалом для MachineA. (Все команды, указанные здесь, должны быть выполнены как root.)

Во-первых, убедитесь, что debconf-utils Пакет установлен как на MachineA, так и на MachineB (выполните следующие действия на обоих серверах):

aptitude update && aptitude install debconf-utils

Затем на MachineA возьмите копию текущего состояния пакета и базы данных debconf:

dpkg --get-selections  > /root/dpkg-selections.txt
debconf-get-selections > /root/debconf-selections.txt

Скопируйте два файла с MachineA на MachineB, например:

scp /root/{dpkg,debconf}-selections.txt MachineB:

Теперь на MachineB загрузите файл выбора debconf

debconf-set-selections /root/debconf-selections.txt

загрузить файл выбора пакетов

dpkg --clear-selections && dpkg --set-selections < /root/dpkg-selections.txt

и наконец, запустите менеджер пакетов, чтобы обновить установки программного обеспечения вашей системы

aptitude install

Теперь все, что осталось, это переместить все необходимые файлы конфигурации из /etc на машине от А до машины. Лучше всего это делать вручную, потому что есть определенные файлы, которые должны различаться на двух машинах, даже если они должны быть зеркалами друг друга. Например, файлы типа /etc/hostname, /etc/network/interfaces, а также /etc/fstab отражать вещи об их соответствующих локальных системах, которые могут (или должны) отличаться на другой машине. Чтобы сгенерировать список файлов конфигурации, чтобы рассмотреть возможность копирования с MachineA на MachineB, вы можете использовать rsync в режиме "пробного запуска", где на самом деле ничего не копируется, но перечислены файлы, которые были бы скопированы, например (из MachineB):

rsync -rplgoDvn MachineA:/etc/ /etc

ДОПОЛНЕНИЕ

Обычно предупреждения и сообщения об ошибках генерируются debconf-set-selections, Я сам видел их много раз, и я не знаю, почему они происходят, но я не помню, чтобы когда-либо обнаружил, что они указывают на фактический случай сломанной конфигурации.

Если вы скептически настроены и хотите развеять свои страхи, вы можете проверить, все ли конфигурации пакетов в порядке, с помощью следующей процедуры: создайте список всех пакетов, для которых были сгенерированы предупреждения / ошибки, а затем запустите вручную dpkg-reconfigure package для каждого пакета в этом списке. Если есть какие-либо подлинные проблемы с пакетом, они должны быть обнаружены и / или исправлены операцией перенастройки.

Лично я бы воспринял это как возможность резервного копирования, а не пытался копировать систему на другую работающую систему. Просто скопируйте всю новую систему в старую, используя rsync или rdiff-backup. Преимущество rdiff-backup заключается в том, что вы можете легко иметь несколько копий данных.

Пример команды rsync, похожей на резервную, может быть на исходном сервере:

rsync -a --exclude=/proc/ --exclude=/dev/ --exclude=/sys/ / root@backup:/path/to/backups/origin-root/

Это сделает полную копию системы в месте назначения. Оттуда вы всегда можете восстановить любую нужную вам конфигурацию, не беспокоясь о перезаписи конфигураций, которые необходимо сохранить на новом сервере (например: fstab, hosts, hostname, network, правила постоянной сети udev и т. Д...).

На старой машине:

dpkg --get-selections >/tmp/mypackagelist

Скопируйте файл на резервную машину и:

cat mypackagelist | xargs apt-get -y install

(Это должно быть сделано как суперпользователь).

Больше можно найти на этот старый вопрос.

Другие вопросы по тегам