Я пытаюсь скопировать установку операционной системы моего живого сервера локально на машину, поэтому, если что-то пойдет не так, у нас есть резервная копия. Я уже установил ту же версию ОС, что и в нашей действующей системе, на этом сервере, но я хочу убедиться, что могу скопировать все те же пакеты и как можно больше дублировать среду. Это быстрое решение, а не окончательное решение.
У меня есть резервные копии всех файлов конфигурации на 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
и беспокоюсь о стабильности этого зеркала, если я продолжу
В системах, производных от 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
на MachineA на MachineB. Лучше всего это делать вручную, потому что на двух машинах есть определенные файлы, которые должны быть разными, даже если они должны быть зеркалами друг друга. Например, файлы типа /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, имя хоста, сеть, постоянные сетевые правила udev и т. Д.).
На старой машине:
dpkg --get-selections >/tmp/mypackagelist
Скопируйте файл на резервную машину и:
cat mypackagelist | xargs apt-get -y install
(Это должно быть сделано как суперпользователь).
Больше можно найти на этот старый вопрос.