Próbuję zbudować Ansible Playbook, aby wdrożyć niektóre serwery Ubuntu 12.04 na Linode, ale moim problemem wydaje się być Ubuntu. Kiedy uruchamiam różne kombinacje apt-get lub aptitude, zawsze pojawia się następujące okno dialogowe, na które muszę odpowiedzieć.
Chciałbym, aby została na nie udzielona odpowiedź z wiersza poleceń, aby nie zakłócało automatycznego wdrażania. Jakieś pomysły?
Moje obecne polecenia są poniżej. Pamiętaj, że próbuję ustawić 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
iptables-persistent/autosave_v4 boolean true
.Przegapiłeś
-q
. Próbować:źródło
Myślę, że powinieneś rozważyć zrobienie bazy danych debconf, aby zautomatyzować cały proces. Jest to nieintuicyjny proces i wymaga dużo pracy, np. Przepakowania własnych plików deb, aby działał i jest nazywany „ wstępnym usuwaniem debconf” .
Istnieje kilka przykładów na wiki Debiana, jak to zrobić:
W zależności od czasu i okoliczności wybierzesz jedną (dlatego nie wdałem się w szczegóły). Weź taki, który wydaje się przydatny i trzymaj się go do końca.
Jeśli napotkasz problemy, zadaj kolejne pytanie, szczegółowo opisując, co próbujesz zrobić i jak zamierzasz to zrobić.
źródło
Drobne poprawki / dostosowania do odpowiedzi @ lorin-hochstein opartej na Ansible na nieinteraktywną instalację iptables-trwałą, w której zadanie wymaga pomyślnych uprawnień sudo (dodano
become: yes
wiersz):## 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
źródło
Jeśli budujesz obraz Dockera:
źródło