はじめに
たまたま気がついたのですが、ansible-plyabook
コマンドに複数のPlaybook を指定すると連続で実行されます。
公式ドキュメントの ansible-playbook
コマンド説明ページや、ヘルプには以下のような記載があります。
usage: ansible-playbook [-h] [--version] [-v] [-k] ...(略)... playbook [playbook ...]
この記事では、簡単なサンプルで動作例を紹介します。
- 環境
- Ansible 2.8.4 / 2.9.0
サンプル Playbook
3つ Playbook を準備します。
- hosts: localhost connection: local gather_facts: no tasks: - name: debug debug: msg: "Playbook 1" # ここで区別
- hosts: localhost connection: local gather_facts: no tasks: - name: debug debug: msg: "Playbook 2" # ここで区別
- hosts: localhost connection: local gather_facts: no tasks: - name: debug debug: msg: "Playbook 3" # ここで区別
実行
ansible-playbook
コマンドの引数に、先ほど作成した Playbook 3つを指定して実行します。
$ ansible-playbook -i localhost, p1.yml p2.yml p3.yml PLAY [localhost] ****************************************************************************** TASK [debug] ********************************************************************************** ok: [localhost] => { "msg": "Playbook 1" } PLAY RECAP ************************************************************************************ localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 PLAY [localhost] ****************************************************************************** TASK [debug] ********************************************************************************** ok: [localhost] => { "msg": "Playbook 2" } PLAY RECAP ************************************************************************************ localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 PLAY [localhost] ****************************************************************************** TASK [debug] ********************************************************************************** ok: [localhost] => { "msg": "Playbook 3" } PLAY RECAP ************************************************************************************ localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
3つの Playbook が、指定した順番に連続で実行されました。
なお、試した限り、タスクの実行に失敗すると以降の Playbook は実行せずに中断しました。