J'essaie de construire un Ansible Playbook pour déployer des serveurs Ubuntu 12.04 sur Linode, mais mon problème semble être celui d'Ubuntu. Lorsque je lance différentes combinaisons d’apt-get ou d’aptitude, j’obtiens toujours le dialogue suivant auquel je dois répondre.
J'aimerais que la réponse soit donnée à partir de la ligne de commande afin qu'elle n'interrompe pas le déploiement automatique. Des idées?
Mes commandes actuelles sont ci-dessous. Notez que j'essaie de définir DEBIAN_FRONTEND:
#!/bin/bash
echo 'DEBIAN_FRONTEND="noninteractive"' >> /etc/profile
echo 'DEBIAN_FRONTEND="noninteractive"' >> ~/.profile
source /etc/profile
source ~/.profile
# This next line is the one that pops up the dialog
Sudo aptitude -y install iptables-persistent
# Need this to fix an issue with the package post-install (this works fine.)
Sudo sed \
-i 's/\(modprobe -q ip6\?table_filter\)/\1 || true/g' \
/var/lib/dpkg/info/iptables-persistent.postinst; \
Sudo aptitude install iptables-persistent
Essayez d’utiliser debconf-set-selections
pour définir la valeur avant d’installer le paquet:
echo iptables-persistent iptables-persistent/autosave_v4 boolean true | Sudo debconf-set-selections
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | Sudo debconf-set-selections
Ou, via ansible
- name: prevent the iptables-peristent install dialog
debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true
with_items:
- iptables-persistent/autosave_v4
- iptables-persistent/autosave_v6
- name: install iptables-persistent
apt: name=iptables-persistent
Correction/ajustement mineur de la réponse Ansible de @ lorin-hochstein à installer iptables-persistent de manière non interactive dans laquelle la tâche nécessite l'exécution des privilèges Sudo (ajout de la ligne become: yes
): ## Prevent iptables-persistent pckgs install dialog (debconf-set-selections) - name: prevent the iptables-peristent install dialog become: yes debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true with_items: - iptables-persistent/autosave_v4 - iptables-persistent/autosave_v6 - name: install iptables-persistent apt: name=iptables-persistent
Vous avez manqué -q
. Essayer:
Sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent
Je pense que vous devriez envisager de faire une base de données debconf pour automatiser tout le processus. Ceci est un processus non intuitif et qui nécessite beaucoup de travail, comme reconditionner vos propres fichiers deb, pour le faire fonctionner. Il est appelé "préconfiguration debconf" .
Il y a plusieurs exemples dans wiki de Debian sur la façon de le faire:
En fonction du temps et des circonstances, vous en choisirez un (c'est pourquoi je ne suis pas entré dans les détails). Prenez-en un qui vous semble utile et restez-y jusqu'au bout.
Si vous rencontrez des problèmes, posez une autre question détaillant ce que vous essayez de faire et comment vous prévoyez de le faire.