LinodeにUbuntu 12.04サーバーを展開するためにAnsible Playbookを作成しようとしていますが、私の問題はUbuntuのようです。 apt-getまたはaptitudeのさまざまな組み合わせを実行すると、応答する必要がある次のダイアログが常に表示されます。
自動展開を中断しないように、コマンドラインからこれに回答してほしい。何か案は?
私の現在のコマンドは以下です。 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
パッケージをインストールする前に、debconf-set-selections
を使用して値を設定してみてください。
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
または、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
タスクが正常に実行するためにSudo特権を必要とするiptables-persistentを非対話的にインストールする@ lorin-hochsteinのAnsibleベースの回答に対するマイナーな修正/調整(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
-q
を見逃しました。試してください:
Sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent
すべてのプロセスを自動化するために、debconfデータベースの使用を検討すべきだと思います。これは非直感的なプロセスであり、独自のdebファイルを再パッケージ化するなど、多くの作業が必要です。これは"debconf preseeding"と呼ばれます。
Debian wiki にはこれを行う方法に関するいくつかの例があります:
時間と状況に応じて、1つを選択します(その理由について詳しく説明しませんでした)。役に立つと思われるものを取り、最後までそれを使い続けます。
問題が発生した場合は、他に何をしようとしているのか、どのように計画しているのかを詳しく質問してください。