Ansible v2.0 からの "block" ディレクティブを使ってみる

  • 12
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Ansible v2.0 (記事掲載時点ではalpha)から block ディレクティブが追加されている。

http://docs.ansible.com/ansible/playbooks_blocks.html

要はある条件下で、その block 内の task が実行されるということ。上記ページの例ではansible_distribution == 'CentOS' の時に3つのタスクが root で実行されることになるようだ。

when には 変数のブールも使えるので、例えば


vars:
  flag: true

tasks:
  - block:
    - yum: name={{ item }} state=installed
      with_items:
      - httpd
      - memcached

    - template: src=templates/src.j2 dest=/etc/foo.conf

    - service: name=bar state=started enabled=True
    when: flag

flag が true の時はこの block 内のタスクは実行されて false の時(またはwhen: not flagとするか)はスキップされる。

いろいろなシーンで使えそう。