端くれプログラマの備忘録 Ansible [Ansible] ローカルで実行するには

[Ansible] ローカルで実行するには

プレイブックのtargetsセクションにはhostsの記述が必須だけど、ローカルで実行したい場合にはどうしたらいいか。

プレイの全てのタスクをローカルで実行したい場合

hosts: localhost と指定する。

hosts: localhost と指定する。
- hosts: localhost
  gather_facts: false
  tasks:
    - ping:

プレイ内の特定のタスクだけをローカルで実行したい場合

delegate_toを指定する。

- hosts: all
  gather_facts: false
  tasks:
    - shell: hostname
    - ping:
      delegate_to: localhost
      run_once: true # ノード分実行する必要がなければ

複数タスクをローカルで実行したい場合

タスクごとにdelegate_toを指定するか、以下のようにblockで括る。

- 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