Open3
Ansible Tips
条件によって途中でplaybookを止めたいとき
metaモジュールが使える。
end_play: すべてのホストで以後のタスクを終了
実行中のいずれかのホストで条件がマッチしたら全てのホストに影響する。
- name: end if check
ansible.builtin.meta: end_play
when: some_var == "foo"
end_host: 条件にマッチしたホストで以後のタスクを終了
- name: end if check
ansible.builtin.meta: end_host
when: some_var == "foo"
templateの実行後、ファイルに変更があったらsystemdを再起動する
---
- name: nginx template
ansible.builtin.template:
src: nginx_conf.j2
dest: /etc/nginx/nginx.conf
register: nginx_conf
- name: restart service
ansible.builtin.systemd:
name: nginx
state: restarted
when: nginx_conf.changed
register
のインデント位置に注意。
実行するホストをコマンドラインで制限する
--limit
を使う。
ansible-playbook site.yml --limit 'host1,host2'
Patterns: targeting hosts and groups — Ansible Documentation https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html