プレイブックのtargetsセクションにはhostsの記述が必須だけど、ローカルで実行したい場合にはどうしたらいいか。
プレイの全てのタスクをローカルで実行したい場合
hosts: localhost と指定する。
1 2 3 4 5 |
hosts: localhost と指定する。 - hosts: localhost gather_facts: false tasks: - ping: |
プレイ内の特定のタスクだけをローカルで実行したい場合
delegate_toを指定する。
1 2 3 4 5 6 7 |
- hosts: all gather_facts: false tasks: - shell: hostname - ping: delegate_to: localhost run_once: true # ノード分実行する必要がなければ |
複数タスクをローカルで実行したい場合
タスクごとにdelegate_toを指定するか、以下のようにblockで括る。
1 2 3 4 5 6 7 8 9 10 11 |
- hosts: all gather_facts: false tasks: - delegate_to: localhost block: - shell: hostname: - ping: # blockここまで - yum: name: httpd state: present |
参考サイト
Ansibleのローカル実行 – Qiita
https://qiita.com/hiroyuki_onodera/items/e6d0d308eb44e26fa03f