Installer des paquets avec APT sans intervention
Lorsqu’on scripte l’installation d’un serveur, l’appel de APT peut déclencher des questions interactives sur certains paramètres.
Il est bien sûr posssible de les ignorer avec les flags --quiet
accompagné de --assume-yes
ou --assume-no
pour avoir des réponses automatiques mais dans certains cas, ce n’est pas satifaisant. Par exemple, lors de l’installation du paquet opensmtpd
, il est nécessaire de renseigner l’adresse à laquelle faire suivre le courrier de root
ainsi que le nom du serveur de mail.
Pour fournir automatiquement ces informations à l’installeur, il suffit de renseigner la base de données des questions de APT avant de lancer la commande d’installation. Cela se fait facilement à l’aide de la commande debconf-set-selections
. Cette commande prend en entrée (sur stdin) : le nom du paquet, le nom de la “question” et la réponse à fournir.
Par exemple :
echo "opensmtpd opensmtpd/root_address string admin@mondomaine.fr" | debconf-set-selections
echo "opensmtpd opensmtpd/mailname string smtp.mondomaine.fr" | debconf-set-selections
apt-get install opensmtpd
Dans cet exemple, on renseigne les éléments suivants :
- la question
root_address
(qui correspond à l’adresse à laquelle sont renvoyés les emails destinés à l’utilisateurroot
) - le nom de la machine pour le serveur SMTP
Pour connaitre la liste des questions possibles pour un paquet donné, il faut utiliser la commande debconf-show <nom du paquet>
.
Par exemple :
root@serveur# debconf-show opensmtpd
* opensmtpd/root_address: admin@mondomaine.fr
opensmtpd/mailname:
Les lignes qui commencent par une étoile sont celles qui ont été renseignées.