Я создал автоматизированное изображение Ubuntu с использованием упаковщика с использованием файла preseed.cfg
и понял, что мы используем несколько шаблонов, и для каждого из них требуется одинаковое предварительное условие, но несколько разных значений для конкретных параметров.
Можно ли создать переменную в предварительном семени для получения значения из переменной среды?
Если бы не мой обходной путь:
preseed.cfg
аналогично $CUSTOM_VALUE
и переименуйте предварительное семя в preseed.cfg.tpl
sed
для preseed.cfg.tpl
, чтобы заменить $CUSTOM_VALUE
значением переменной среды и вывести файл as preseed.cfg
Другой обходной путь - использовать препровизатор, подобный racker
, чтобы прочитать шаблон семени, заменить значение, сохраните его в файл, а затем направьте вывод устройства для монтажа в упаковщик, например racker ubuntu.rb - | packer build -
Да. bootparam имеет эту важную часть:
Что-либо формы 'foo=bar', который не принят как функция установки, как описано выше, затем интерпретируется как переменная среды, которая будет установлена.
И приложение B.2.2 "Автоматизации установки с помощью предварительного отбора":
B.2.2. Используя параметры начальной загрузки для предварительного отбора вопросов, Если файл предварительного конфигурирования не может использоваться для предварительного отбора некоторых шагов может все еще быть полностью автоматизирована установка, так как можно передать значения перед семенем командной строке при начальной загрузке установщика.
Параметры начальной загрузки могут также использоваться, если Вы действительно не хотите использовать предварительный отбор, но просто хотеть предоставить ответ для конкретного вопроса. Некоторые примеры, где это может быть полезно, документируются в другом месте в этом руководстве.
Для устанавливания значения, которое будет использоваться в debian-установщике, просто передайте path/to/variable=value для любой из переменных перед семенем, перечисленных в примерах в этом приложении. Если значение должно использоваться для конфигурирования пакетов для целевой системы, необходимо будет предварительно ожидать владельца (Владелец debconf переменной (или шаблон) обычно название пакета, который содержит соответствующий шаблон debconf. Для переменных, используемых в самом установщике, владелец является “d-i”. Шаблоны и переменные могут иметь больше чем одного владельца, который помогает определить, могут ли они быть удалены из debconf базы данных, если пакет очищен.) переменной как в owner:path/to/variable=value. Если Вы не укажете владельца, то значение для переменной не будет скопировано в debconf базу данных в целевой системе и таким образом останется неиспользованным во время конфигурации соответствующего пакета.
Обычно, предварительный отбор, вопрос таким образом будет означать, что вопрос не зададут. Для установки определенного значения по умолчанию для вопроса но все еще вопрос спросил, используйте “? =” вместо “=” как оператор. См. также Раздел B.5.2, “Используя предварительный отбор для изменения значений по умолчанию”.
Обратите внимание, что некоторые переменные, которые часто устанавливаются при подсказке начальной загрузки, имеют более короткий псевдоним. Если псевдоним доступен, он используется в примерах в этом приложении вместо полной переменной. Переменная предварительного семени/URL, например, была искажена как URL. Другим примером является псевдоним задач, который переводит в tasksel:tasksel/first.
Примечание: Текущие ядра Linux (2.6.9 и позже) принимают максимум 32 параметров командной строки и 32 опций среды, включая любые опции, добавленные по умолчанию для установщика. Если эти числа будут превышены, то ядро запаникует (отказывают). (Для более ранних ядер эти числа были ниже.)
Примечание: ubuntu.parmfile ограничен 11 строками только, каждый 80 символов в длину. (Точный предел является 11 строками с каждым * 80 символов плюс дополнительные 10 символов.) Следовательно рекомендуется попытаться указать больше, чем всего один параметр на строку, отдельные параметры одиночными пробелами и использованием как можно больше (сократили) псевдонимы. Но не указывайте единственный параметр (включая, он - значение) через несколько строк! Случай параметра, а также последовательности не имеет значения.
И B.2.4 имеет список псевдонимов:
B.2.4. Псевдонимы, полезные с предварительным отбором следующие псевдонимы, могут быть полезными при использовании (автоматический режим) предварительного отбора. Обратите внимание, что это просто короткие псевдонимы для имен вопроса, и всегда необходимо указывать значение также: например, auto=true или interface=eth0.
priority debconf/priority
fb debian-installer/framebuffer
language debian-installer/language
country debian-installer/country
locale debian-installer/locale
theme debian-installer/theme
auto auto-install/enable
classes auto-install/classes
file preseed/file
url preseed/url
domain netcfg/get_domain
hostname netcfg/get_hostname
interface netcfg/choose_interface
protocol mirror/protocol
suite mirror/suite
modules anna/choose_modules
recommends base-installer/install-recommends
tasks tasksel:tasksel/first
desktop tasksel:tasksel/desktop
dmraid disk-detect/dmraid/enable
keymap keyboard-configuration/xkb-keymap
preseed-md5 preseed/file/checksum