Ansible で Ubuntu に postfix をインストール

Ansible で Ubuntu に postfix をインストール

やりたいことはタイトル通りです。

「え?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 (ユーザーの入力無し)であることが慣例となっているので、こういう問題は通常はありません。

we are hiring

優秀な技術者と一緒に、好きな場所で働きませんか

株式会社もばらぶでは、優秀で意欲に溢れる方を常に求めています。働く場所は自由、働く時間も柔軟に選択可能です。

現在、以下の職種を募集中です。ご興味のある方は、リンク先をご参照下さい。