地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

with_itemsで環境ごとにループを分けるテクニック

全ての環境でAという操作をしたいがBという操作は特定の環境のみに生成させたい時に使えるテクニック

  tasks:
    - name: Fix modperl config
      lineinfile:
        dest=/tmp/test.txt
        insertafter=EOF
        line={{ item }}
      with_items:
        - 'aaa'
        - 'bbb'
        - 'ccc'
      when:
        ansible_facts['os_family'] == "Debian" and item != 'bbb'

やることはwhenで条件を書くことで目的を達成できる。with_itemsのitemを判定することがポイント

CLIからdevなりprodなりステージングなりのパラメータを与えてwhenで条件判定すればもっと複雑な条件判定も行うことができる。