リモート開発メインのソフトウェア開発企業のエンジニアブログです

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

← 前の投稿

(小ネタ)md5sumを使ってリモートにあるファイルとのチェックサムを検証するワンライナー

次の投稿 →

macOSでVirtualBoxがインストールできない時の対処法

コメントを残す