Ansible

如何使用 Ansible 按順序執行多個劇本?

  • February 8, 2022

我正在編寫幾個 Ansible 劇本來啟動一個新的伺服器實例。我需要按特定順序執行大約 15 個不同的劇本才能成功啟動伺服器。

我最初的想法是編寫一個 shell 腳本來執行ansible-playbook playbook_name.yml並為我需要執行的每個劇本複制一個條目。

有沒有更聰明/更好的方法來使用主劇本來做到這一點,如果有的話,它會是什麼樣子(例子很受歡迎)。

我可以編寫一個完整的劇本來完成這一切,但有些劇本首先以 root 身份執行,然後以 sudo 使用者身份執行。

建構許多子劇本並通過包含語句聚合它們。

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

如果您的 playbook 必須按順序執行並且所有這些都是強制性的,請建構一個主 playbook 並包含包含任務的文件。劇本應該始終是一個封閉的過程。

對於較新版本的 Ansible,您可以建構許多子劇本並通過 import_playbook 語句聚合它們:

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

引用自:https://serverfault.com/questions/750856