我正在编写几个 Ansible 剧本来启动一个新的服务器实例。我需要按特定顺序运行大约 15 个不同的剧本才能成功启动服务器。
我最初的想法是编写一个 shell 脚本来执行ansible-playbook playbook_name.yml
并为我需要运行的每个剧本复制一个条目。
有没有更聪明/更好的方法来使用主剧本来做到这一点,如果有的话,它会是什么样子(例子很受欢迎)。
我可以编写一个完整的剧本来完成这一切,但有些剧本首先以 root 身份运行,然后以 sudo 用户身份运行。
我正在编写几个 Ansible 剧本来启动一个新的服务器实例。我需要按特定顺序运行大约 15 个不同的剧本才能成功启动服务器。
我最初的想法是编写一个 shell 脚本来执行ansible-playbook playbook_name.yml
并为我需要运行的每个剧本复制一个条目。
有没有更聪明/更好的方法来使用主剧本来做到这一点,如果有的话,它会是什么样子(例子很受欢迎)。
我可以编写一个完整的剧本来完成这一切,但有些剧本首先以 root 身份运行,然后以 sudo 用户身份运行。
对于较新版本的 Ansible,您可以构建许多子剧本并通过 import_playbook 语句聚合它们:
构建许多子剧本并通过包含语句聚合它们。
如果您的 playbook 必须按顺序运行并且所有这些都是强制性的,请构建一个主 playbook 并包含包含任务的文件。剧本应该始终是一个封闭的过程。
来自:https ://docs.ansible.com/ansible/latest/collections/ansible/builtin/import_playbook_module.html