インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Ansibleのwhenは配列を使うことができる

特定のgroupやhostにはtaskを実行したくないという場合、whenを使ってやれば簡単に実現することができる。

- name: put /etc/hosts
  template: src=hosts dest=/etc/hosts owner=root group=root mode=0644
  tags: hosts
  when: “'test1_servers' not in group_names"

taskを実行したくないgroupやhostが複数ある場合は新しくgroupを作って、whenの条件を作らないといけないのかなと思っていました。

なんだか微妙だなと思って、ふとwhenの条件は配列でもイケんじゃね?と思い試してみたところ、大当たり。

- name: put /etc/hosts
  template: src=hosts dest=/etc/hosts owner=root group=root mode=0644
  tags: hosts
  when: [“'test1_servers' not in group_names", "'test2_servers' not in group_names"]

ぐぐってもwhenに配列が使えることが載ってる記事にヒットしなかったのでまとめ。

  • B!