フラミナル

1日1記事を目標にITのことについて書くブログ

Ansibleの勘違いしやすいalwaysについて

f:id:lirlia:20170706232443j:plain

Ansibleにはalways_runalwaysという紛らわわしい(と思っている)ものがある。

それぞれの説明を書いておく。

  • always_runはステートメント
  • alwaysはタグ

always_runとは

公式サイトはこちら Check Mode (“Dry Run”) — Ansible Documentation

- tasks: 
      - shell: date
        always_run: True

このように書くことで、ドライラン実行時(ansible-playbook -Cで実行した時)にもこのshellタスクは実行される。

※通常ドライラン時はshellタスクはスキップされる

alwaysとは

alwaysはタグだ。

ansible-playbookコマンドを実行した時に--tags/-tオプションを付与すると、指定のroleのみを実行することができる。

しかし状況によっては必ず実行したいroleがある場合もあるだろう。

roles:
  - { role: test1 , tags: ["test1", "always"] }
  - { role: test2 , tags: ["test2"] }     

このようにすることでansible-playbook -t test2としても必ず毎回test1のroleも流すことができるようになる。