J'ai créé une image Ubuntu automatisée à l'aide de Packer à l'aide de preseed.cfg
Fichier et j'ai réalisé que nous utilisons plusieurs modèles et que chacun nécessite les mêmes valeurs, mais quelques valeurs différentes pour des paramètres spécifiques.
Est-il possible de créer une variable en vue d'obtenir une valeur d'une variable d'environnement?
Si pas ma solution de contournement pourrait être:
preseed.cfg
aimer $CUSTOM_VALUE
et renommer l'escié à preseed.cfg.tpl
sed
contre preseed.cfg.tpl
remplacer $CUSTOM_VALUE
Avec l'environnement VAR VALEUR ET SORTIE Le fichier en tant que preseed.cfg
Une autre solution de contournement consiste à utiliser un préprovinateur comme racker
Pour lire le modèle prélevé, remplacez la valeur, sauvegardez-le dans un fichier, puis conduisez la sortie du rasage à Packer E.G. racker ubuntu.rb - | packer build -
Oui. bootparam a cette partie importante:
Tout ce qui est de la forme 'foo = bar' qui n'est pas accepté comme une fonction de configuration comme décrit ci-dessus est ensuite interprété comme une variable d'environnement à définir.
Et l'annexe B.2.2 de "Automatiser l'installation en utilisant Présenage":
B.2.2. En utilisant les paramètres de démarrage des questions prélevées si un fichier de préconfiguration ne peut pas être utilisé pour évaluer certaines étapes, l'installation peut toujours être entièrement automatisée, car vous pouvez passer des valeurs prélevées sur la ligne de commande lors du démarrage du programme d'installation.
Les paramètres de démarrage peuvent également être utilisés si vous ne souhaitez pas vraiment utiliser la présérence, mais je veux simplement fournir une réponse à une question spécifique. Quelques exemples où cela peut être utile sont documentés ailleurs dans ce manuel.
Pour définir une valeur à utiliser à l'intérieur de Debian-Installer, passez simplement le chemin d'accès/à/variable = valeur pour l'une des variables prélevées énumérées dans les exemples de cette annexe. Si une valeur doit être utilisée pour configurer des packages pour le système cible, vous devrez préparer le propriétaire (le propriétaire d'une variable debconf (ou de modèle) est normalement le nom du package contenant le modèle debconf correspondant. Pour les variables utilisées. Dans l'installateur lui-même, le propriétaire est "di". Les modèles et les variables peuvent avoir plus d'un propriétaire qui aide à déterminer s'ils peuvent être supprimés de la base de données DEBCONF si le package est purgé.) de la variable comme dans le propriétaire: chemin/à destination/variable = valeur. Si vous ne spécifiez pas le propriétaire, la valeur de la variable ne sera pas copiée dans la base de données DEBCONF dans le système cible et restera donc inutilisée pendant la configuration du package concerné.
Normalement, une question prélevée de cette manière signifiera que la question ne sera pas posée. Pour définir une valeur par défaut spécifique pour une question, mais la question posée toujours, utilisez "? =" Au lieu de "=" comme opérateur. Voir également la section B.5.2, "Utilisation de prélever pour modifier les valeurs par défaut".
Notez que certaines variables qui sont fréquemment définies à l'invite de démarrage ont un alias plus court. Si un alias est disponible, il est utilisé dans les exemples de cette annexe au lieu de la variable complète. La variable estimée/URL par exemple a été aloritable comme URL. Un autre exemple est l'alias des tâches, qui se traduit par des tâches: tâcheel/premier.
Remarque : Les noyaux Linux actuels (2.6.9 et la version ultérieure) Acceptent un maximum de 32 options de ligne de commande et 32 options d'environnement, y compris toutes les options ajoutées par défaut pour l'installateur. Si ces chiffres sont dépassés, le noyau va paniquer (crash). (Pour les noyaux précédents, ces chiffres étaient plus bas.)
Remarque : le Ubuntu.parAmfile est limité à 11 lignes seulement, chacun de 80 caractères de long. (La limite précise est de 11 lignes avec chaque * 80 caractères et 10 caractères supplémentaires.) Il est donc recommandé d'essayer de spécifier plus d'un seul paramètre par ligne, des paramètres séparés par des espaces simples et utilisez autant que possible les alias (raccourcis). Mais ne spécifiez pas un seul paramètre (incl. De la valeur) sur plusieurs lignes! Le cas du paramètre ainsi que la séquence ne comptent pas.
Et B.2.4 a une liste d'alias:
B.2.4. Les alias utiles avec préréglementation Les alias suivants peuvent être utiles lors de l'utilisation de (mode automatique). Notez que celles-ci sont simplement courtes alias pour les noms de questions et vous devez toujours spécifier une valeur également: par exemple, auto = true ou 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