Ansible roleに条件を付ける OS毎に分ける例

公式ドキュメントにあるが、日本語でroleの条件指定の情報が少なかったので記載。

特定のOSや環境だけタスクを実施したい時はタスクごとにwhen:を使えばよいのだが、これをrole単位で適用したい場合はどうするか?
答え:roleにwhen条件を入れればよい。

- hosts: localhost
  connection: local
  roles:
    - common
    - { role: debian, when: "ansible_os_family == 'Debian'" }
    - { role: redhat, when: "ansible_os_family == 'RedHat'" }

上記でDebianにて実行時にはdebianロールが、ReaHatで実行時にはredhatロールが実行される。

カテゴリー: Ansible タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload the CAPTCHA.