web-dev-qa-db-fra.com

Possible d'utiliser des variables dans un fichier estimé?

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:

  1. Créez une valeur remplaçable dans preseed.cfg aimer $CUSTOM_VALUE et renommer l'escié à preseed.cfg.tpl
  2. Avant le processus Packer, exécutez sed contre preseed.cfg.tpl remplacer $CUSTOM_VALUE Avec l'environnement VAR VALEUR ET SORTIE Le fichier en tant que preseed.cfg
  3. Run Packer sur la nouvelle estimation

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 -

1
SomeGuyOnAComputer

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
1
Rinzwind