メールサーバでは、localhost 以外のサーバからの smpt を受付け
アプリケーションサーバでは、自サーバでエラーが起こった時だけログをメールで送信したいとします。
その時に、postfix の設定ファイルを入れ分けたいので ansible でどうやってやるのか調べました。
参考にさせてもらったサイト①
http://d.hatena.ne.jp/akishin999/20130820/1377013914
- name: mailserver setting copy /etc/postfix/main.cf
copy: src={{ item }} dest=/etc/postfix/ owner=root group=root mode=0644
with_items:
- mailserver_setting/main.cf
when: hosts == “mailservergroup” ×
- name: default setting copy /etc/postfix/main.cf
copy: src={{ item }} dest=/etc/postfix/ owner=root group=root mode=0644
with_items:
- default_setting/main.cf
when: hosts == “apservergroup” ×
これだと hosts には実行対象のホスト名が入ってくるのでダメです。
今度は、”inventory” というキーワードで調べて見つけたのが inventory_hostname ですが結果は同じ。。。
参考にさせてもらったサイト②
http://ameblo.jp/pioho07/entry-11954301615.html
when: inventory_hostname == “mailservergroup” ×
そっかホスト名しかダメなのか〜と思って
参考にさせてもらったサイト③:
https://groups.google.com/forum/#!topic/ansible-project/lr7nXyGw0UY
when: inventory_hostname in groups['mailservergroup'] ×
これだと上記のように相対する処理を入れていた時に、該当しない方がエラーとなってしまいました。。。
TASK: [postfix | mailserver setting copy /etc/postfix/main.cf] ****************
ok: [test-mailserver] => (item=mailserver_setting/main.cf)
TASK: [postfix | default setting copy /etc/postfix/main.cf] *******************
fatal: [test-mailserver] => error while evaluating conditional: inventory_hostname in groups['apservergroup']
FATAL: apservergroup hosts have already failed -- aborting
でも、近づいてきた気がする!!!
ここで “inventory_hostname” を忘れて、②のサイトをよくよく見てみると下の方に “グループ分け” って書いてある!!
when: "'mailservergroup' in group_names"
表記はこんな感じです。
- name: mailserver setting copy /etc/postfix/main.cf
copy: src={{ item }} dest=/etc/postfix/ owner=root group=root mode=0644
with_items:
- mailserver_setting/main.cf
when: “’mailservergroup’ in group_names"
- name: default setting copy /etc/postfix/main.cf
copy: src={{ item }} dest=/etc/postfix/ owner=root group=root mode=0644
with_items:
- default_setting/main.cf
when: “’appservergroup’ in group_names"
$ansible-playbook mailservergroup
のホストゆけー!
TASK: [postfix | mailserver setting copy /etc/postfix/main.cf] ****************
ok: [test-mailserver] => (item=mailserver_setting/main.cf)
TASK: [postfix | default setting copy /etc/postfix/main.cf] *******************
skipping: [test-mailserver] => (item=default_setting/main.cf)
行った!