Назад | Перейти на главную страницу

«Дублировать» работающий сервер

Вместо использования Ansible или какого-либо другого инструмента управления конфигурацией после многих месяцев работы администратором этого сервера ubuntu 16.04 я внес много изменений в систему: изменил файлы конфигурации в / etc, установил пакеты, включил и отключил модули apache2, и так далее.

Есть ли автоматизированный способ создания сценария или чего-то еще, который при выполнении на чистой установке ubuntu 16.04 (но если он работает на любом Linux даже лучше), может воссоздать сервер, который более или менее точно такой же, как тот, который я есть прямо сейчас и работает и работает?

Изменить: к сожалению, это не виртуальная машина, которую я могу просто клонировать.

Я могу думать только о следующих подходах:

  • найти список всех установленных пакетов и переустановить их на целевой машине; затем найдите все измененные / добавленные файлы конфигурации и используйте tar / rsync / something, чтобы скопировать их на целевую машину;

  • если вы не можете / не хотите клонировать путем прямого копирования в формате RAW, вы можете использовать tar / rsync (с соответствующими параметрами), чтобы полностью клонировать исходные данные на новый компьютер.

  • вы можете использовать инструмент дампа файловой системы (например: dump2fs, xfsdump, fsarchiver и т.д.), чтобы выгрузить всю файловую систему и восстановить ее на новом компьютере;

  • используйте clonezilla / dd / ddrescue для клонирования физических дисков (для клонирования вообще не требуется виртуальная среда) и восстановления образа на целевой машине. Для этого требуется исходный компьютер с загрузкой livecd или моментальный снимок LVM / BTRFS / ZFS исходного тома.

Когда дело касается отраслевых стандартов, сейчас мало что можно сделать. Если вам действительно нужны сценарии, чтобы все подготовить для вас, я бы:

  • выгрузить все установленные пакеты с помощью dpkg -l вместе с его версиями.
  • создать новый сервер с ubuntu 16.04, установить все пакеты одинаковых версий.
  • установить etckeeper на новом сервере
  • rsync все /etc каталоги с исходного сервера на "чистый" один - обеспечение того, чтобы файлы из "чистый" тот не присутствующие в исходном удаляются ( a2dismod просто удаляет символические ссылки в каталоге / etc / apache2 / modules, поэтому это был бы другой способ сделать то же самое) - в rsync сделать именно это.

После этого вам должен быть представлен (спасибо etckeeper) дифференциал git /etc/ каталог - его можно просто (?) преобразовать в patch скрипт, но он будет надежно работать только тогда, когда все версии пакета будут точно такими же, как у исходного сервера. Однако это было бы хорошей базой для некоторых реальных шаблонов для ansible / puppet / chef

Пройдя по этому пути, вы сможете создать своего рода автоматизацию для подготовки новых серверов с аналогичной конфигурацией.

Есть и другой вариант, если "отраслевые стандарты" вас не интересуют - просто rsync / tar весь сервер (вам нужно остановить базы данных или пропустить их в rsync чтобы избежать несовместимых файловых структур), чтобы вы могли распаковать его с помощью чистой установки ubuntu 16.04, чтобы получить точно такой же компьютер в другом месте.