やりたいことはタイトル通りです。
「え?apt
モジュール使えば良いだけでしょ。」
と思うかもしれませんが、それだけだと上手くいかないのです。
問題点
普通に apt
コマンドで postfix
パッケージをインストールしてみると分かるのですが、インストール時に設定項目の入力を求められます。詳しくは debconf
で検索してみて下さい。
解決方法
Ansible には debconf
というモジュールもあるので、今回はそちらを使います。
具体的には、以下のように記述します。
- name: configure postfix using debconf
debconf:
name: postfix
question: "{{ item.question }}"
value: "{{ item.value }}"
vtype: "{{ item.vtype }}"
with_items:
- { question: postfix/main_mailer_type, value: "Satellite system", vtype: select }
- { question: postfix/mailname, value: "host.example.com", vtype: string }
- { question: postfix/relayhost, value: "mail.example.com", vtype: string }
質問に対する回答(ホスト名等)は適宜変更して下さい。
詳細は、以下のドキュメントをご参照下さい。
debconf – Configure a .deb package — Ansible Documentation
その他
ライトな Ubuntu ユーザーなので、パッケージインストール時に色々設定できるのは debconf という仕組みによって実現されていると初めて知りました。
ちなみに、Red Hat 系の場合、RPM パッケージのインストールは non-interactive (ユーザーの入力無し)であることが慣例となっているので、こういう問題は通常はありません。