Здравствуйте, я работаю над автоматизацией и столкнулся с проблемой, из-за которой автоматическая установка Ubuntu по-прежнему запрашивает проверку в середине установки.
Даже если будет найдена полностью неинтерактивная конфигурация автоустановки, установщик сервера запросит подтверждение перед записью на диски, если в командной строке ядра не присутствует autoinstall. Это сделано для того, чтобы усложнить случайное создание USB-накопителя, который переформатирует машину, к которой он подключен при загрузке. Многие автоустановки будут выполняться через netboot, где командная строка ядра контролируется конфигурацией netboot — просто не забудьте добавить туда autoinstall!
Я наткнулся на эту статью, и в моем конфигурационном файле есть «autoinstall» вроде этого:
#cloud-config
autoinstall:
version: 1
Как мне поместить его в командную строку ядра? или как мне написать конфигурацию сетевой загрузки? я немного новичок в администрировании серверов и не знаком с большинством терминов.
решение1
Обратите внимание, что эта мера предосторожности призвана помочь избежать случайного стирания данных с используемых систем.Я бы сказал, что если вы используете официальный установочный носитель Ubuntu как есть и предоставляете конфигурацию автоустановки cloud-init через другой iso, то эта мера предосторожности излишняя. Особенно если не используется физический установочный носитель, а монтирование iso не является ручной операцией.
Таким образом, если вы не можете добавить autoinstall
строку cmdline к ядру при загрузке, вы все равно можете перезаписать строку cmdline до того, как она будет проверена модулем автоустановки, например, так:
#cloud-config
bootcmd:
- cat /proc/cmdline > /tmp/cmdline
- sed -i'' 's/$/ autoinstall/g' /tmp/cmdline
- mount -n --bind -o ro /tmp/cmdline /proc/cmdline
autoinstall:
version: 1
Это использует модуль cloud-init bootcmd для перезаписи /proc/cmdline путем монтирования измененного файла поверх него. Файл содержит исходное содержимое cmdline + autoinstall
.
И как указано вдокументация по автоустановкеэто удалит запрос «Продолжить автоматическую установку? (да|нет)»
Чтобы обойти этот запрос, добавьте аргумент autoinstall в командную строку ядра.
решение2
После некоторых дополнительных исследований эта двойная проверка выполняется для предотвращения случайных установок при использовании физического носителя для установки ОС. Для запуска полностью автоматической установки следует использовать net-install через FTP или HTTP.