Я выполняю среду HyperV с сервером Ubuntu 14.04, работающим в гостевых установках поколения 1. Это работает приятно.
Я хочу смочь клонировать систему (в то время как закрыто), дать ей новое имя и иметь новую систему, реконфигурировали себя немного - другой статический IP, другая установка LVS, другая установка Apache2, и т.д. Я делаю это путем копирования по соответствующим конфигурационным файлам (т.е. система имеет несколько копий, она заменяет файлы как/etc/network/interfaces с правильным),
Я не могу найти, что соответствующее место в выскочке делает это. При выполнении его перед локальными файловыми системами файловая система не является доступным чтением-записью. Выполнение его после, например, в if-pre-up.d во время сетевого запуска сталкивается с собственной конфигурацией системы (т.е. я заменяю/etc/network/interfaces после того, как это начало использовать его).
Не желательно иметь его, полностью загружают и запускают скрипт, поскольку это откроется в сети с конфликтом IP, потенциально влияя на родителя этого клона. Таким образом, я хочу сделать это во время начальной загрузки.
Я несколько заставил это работать путем перезагрузки во второй раз от if-pre-up.d, после перемещения файлов, прежде, чем позволять этому заканчивать подходить. Но это кажется немного неправильным по различным причинам, не, наименьшее количество которых это затем останавливается в личинке (или независимо от того, что тот экран начальной загрузки), и требует клавиши ENTER. [Я отправил вопрос на этом в другом месте, если можно помочь с этим, ответьте там.]
Существует ли соответствующее место в последовательности выскочки, что я могу перезаписать файлы сетевого интерфейса (и связанные сервисные файлы как keepaloved, apache2, haproxy) и их обычно обрабатывали?
Я продолжил биться на этом и иметь его работа, хотя это не симпатично.
Я вставил a if-pre-up.d
сценарий, и вынул eth0
устройство от /etc/interfaces
(который является устройством, которое я хочу настроить).
Затем, когда это стреляет (который может быть многократно), я вручную настраиваю eth0
с IP командными строками (например. ip addr
, ip route
, и т.д.). Я также записал /etc/resolvconf
файл для серверов DNS.
Я добавил строку вначале, которая замечает если eth0
уже настроен и выходит, поэтому если это работает многократно, я только делаю работу однажды. Реализация конфигурации командной строки и отъезда eth0
из /etc/interfaces
мешает ему конфликтовать с нормальной конфигурацией eth0
.
Это ужасно, но я не мог найти соответствующую точку в выскочке между локальной файловой системой настроенной, но перед конфигурацией сети запущенный. По крайней мере, в теории я мог изменить связанное /etc/init
файлы, таким образом, я мог вставить такой шаг, но это кажется хрупким, особенно во время обновлений.
Результат сам конфигурирование гостя, который может работать в Hyper-V, посмотреть на его имя хоста и настроить себя - IP-адреса, другой запуск/файлы конфигурации, и т.д. Таким образом я могу клонировать одну копию многим и получить все виды различных установок, управляемых простым сценарием.
Это работает..., но я был бы верное приветствие лучший ответ.