Ansible
如何使用 Ansible 按順序執行多個劇本?
我正在編寫幾個 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