web-dev-qa-db-ja.com

Ansibleで複数のPlaybookを順番に実行する方法は?

新しいサーバーインスタンスを起動するために、いくつかのAnsibleプレイブックに取り組んでいます。サーバーを正常に起動するために、特定の順序で実行する必要のある約15の異なるプレイブックがあります。

私の最初の考えは、ansible-playbook playbook_name.ymlを実行するシェルスクリプトを記述し、実行する必要がある各プレイブックに1つのエントリを複製することでした。

マスタープレイブックを使用してこれを行うためのよりスマートな/より良い方法はありますか?.

私はそれをすべて行う1つのモノリシックプレイブックを書くことができますが、最初にrootとして実行され、その後にSudoユーザーとして実行されるいくつかのプレイがあります。

19
nulltek

多くのサブプレイブックを作成し、includeステートメントを介してそれらを集約します。

- include: playbook-one.yml
- include: playbook-two.yml

プレイブックを順番に実行する必要があり、それらすべてが必須である場合は、メインプレイブックを作成し、タスクを含むファイルを含めます。プレイブックは常にクローズドプロセスである必要があります。

16
flxPeters

Ansibleの新しいバージョンでは、多数のサブプレイブックを作成し、import_playbookステートメントを介してそれらを集約できます。

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
13
Peter Senna