Je cherche à automatiser certaines installations de packages via un script bash ; ils seront installés sur un système de fichiers chrooté préexistant. Certains des packages impliquent cependant une entrée utilisateur interactive (c'est-à-dire que ddclient demande de sélectionner un fournisseur de services DNS dynamique), que je n'ai pas été en mesure d'automatiser aussi facilement.
La préconfiguration de debconf semble être le moyen le plus courant d'automatiser les installations interactives de paquets, mais tous les exemples que j'ai lus impliquent qu'il s'agit d'une installation Debian entière plutôt que de paquets individuels.
J'ai suivi ceci Comment automatiser les installations interactives de paquets Debian mais cela n'explique pas vraiment les détails.
Merci d'avance !
Réponse acceptée :
À moins d'utiliser un outil de gestion de déploiement et de configuration "approprié" tel qu'Ansible ou Salt, debconf
la préconfiguration peut être parfaitement suffisante pour préconfigurer les paquets Debian. Ce n'est pas du tout limité aux installations complètes; il peut être appliqué à n'importe quel nombre de packages.
La façon la plus simple de commencer est de configurer manuellement les packages que vous souhaitez installer, en installant le package et en répondant aux questions. Puis exécutez debconf-get-selections
(à partir de debconf-utils
emballer); qui répertorie tous les paramètres stockés, y compris ceux des packages que vous venez d'installer, ainsi que le texte de la question dans les commentaires - afin que vous puissiez facilement trouver les questions que vous souhaitez préconfigurer. Le format est
<package> <debconf key> <type> <value>
Par exemple
# System's default paper size:
# Choices: letter, a4, note, legal, executive, halfletter, halfexecutive, 11x17, statement, folio, quarto, 10x14, ledger, tabloid, a0, a1, a2, a3, a5, a6, a7, a8, a9, a10, b0, b1, b2, b3, b4, b5, c5, DL, Comm10, Monarch, archE, archD, archC, archB, archA, flsa, flse, csheet, dsheet, esheet
libpaper1 libpaper/defaultpaper select a4
Stockez les paramètres que vous souhaitez préconfigurer dans un fichier, puis exécutez debconf-set-selections
(dans le debconf
package) sur le système cible, soit avec le fichier disponible localement et nommé comme premier argument, soit son contenu redirigé :
cat preseed-file | ssh remotehost debconf-set-selections
Faites-le avant installer les packages sur le système cible.