gpt4 book ai didi

ansible - 为什么会有 Ansible "master playbook"?

转载 作者:行者123 更新时间:2023-12-02 15:29:40 25 4
gpt4 key购买 nike

在 Ansible 项目中拥有主剧本有什么意义? Ansible best practices描述这样的项目布局:

production      # inventory file for production servers
staging # inventory file for staging servers
site.yml # master playbook
webservers.yml # playbook for webserver tier
dbservers.yml # playbook for dbserver tier

主剧本看起来像这样:

# site.yml
---
- include: webservers.yml
- include: dbservers.yml

网络服务器和数据库服务器看起来像这样:

---
- name: configure webservers
hosts: webservers

tasks:
(tasks go here)

roles:
(roles go here)

通常,如果您只有一个 list 文件,您可以在 ansible.cfg 文件中指定它:

# ansible.cfg
[defaults]
hostfile = inventory

然后您可以简单地使用以下命令运行您的剧本:

$ ansible-playbook site.yml

但是,如果我们将 list 拆分为两个单独的文件,则在运行 playbook 时,您始终需要指定一个 list 文件:

$ ansible-playbook -i production site.yml

但是,由于您的网络服务器或数据库服务器剧本很可能会指定“hosts: webservers”或“host: dbservers”来指示 list 文件中的这些相应组,为什么不直接运行这些命令呢?

$ ansible-playbook -i production webservers.yml
$ ansible-playbook -i production dbservers.yml

拥有 site.yml 主剧本会给您带来什么?

谢谢。

最佳答案

这个例子非常简单。

假设您有一个相当复杂的基础设施,其中的各个组件有 15-20 个不同的剧本。这样的主剧本将确保不仅所有底层剧本都会执行,而且它们将以正确的顺序执行。 (即应该首先运行什么,dbservers.yml 还是 webservers.yml?)

关于ansible - 为什么会有 Ansible "master playbook"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com