Вместо использования 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
вместе с его версиями. etckeeper
на новом сервереrsync
все /etc
каталоги с исходного сервера на "чистый" один - обеспечение того, чтобы файлы из "чистый" тот не присутствующие в исходном удаляются ( a2dismod
просто удаляет символические ссылки в каталоге / etc / apache2 / modules, поэтому это был бы другой способ сделать то же самое) - в rsync
сделать именно это. После этого вам должен быть представлен (спасибо etckeeper) дифференциал git /etc/
каталог - его можно просто (?) преобразовать в patch
скрипт, но он будет надежно работать только тогда, когда все версии пакета будут точно такими же, как у исходного сервера. Однако это было бы хорошей базой для некоторых реальных шаблонов для ansible
/ puppet
/ chef
Пройдя по этому пути, вы сможете создать своего рода автоматизацию для подготовки новых серверов с аналогичной конфигурацией.
Есть и другой вариант, если "отраслевые стандарты" вас не интересуют - просто rsync
/ tar
весь сервер (вам нужно остановить базы данных или пропустить их в rsync
чтобы избежать несовместимых файловых структур), чтобы вы могли распаковать его с помощью чистой установки ubuntu 16.04, чтобы получить точно такой же компьютер в другом месте.