ansible playbook主机,有没有办法按变量过滤

时间:2016-06-08 10:20:45

标签: ansible ansible-playbook

如果我的问题有点基本的话,我对ansible很新,请耐心等待。

我有10个不同主题的WordPress网站,所有这些网站都列在主页文件下的' production'小组:

[production]

black.com

red.com

blue.com

每个站点都需要不同的变量:

theme_name: black

无论如何,我可以在“制作”中制作剧本。主机组,使用变量?

2 个答案:

答案 0 :(得分:2)

您不能轻易*按变量过滤。但您可以将主机添加到其他组中,如下所示:

[production]
black.com
red.com
blue.com

[black]
black.com

[red]
red.com

[blue]
blue.com

现在为主题名称创建一个group-vars文件。例如,对于红色组,您可以使用以下内容创建文件group_vars/red

theme_name: red

现在,您可以使用blackredblue群组运行您的Playbook。

*我想有一种方法,可以在hostvars dict上运行过滤器,并将其缩小为符合条件的主机名列表。但这似乎是开销和反对最佳实践。如果您想要定位一组特定的主机,则应该在清单中为它们设置一个组。

答案 1 :(得分:1)

不确定您的问题是否完全清楚,但问题的另一个可能答案可能是:

您可以直接将变量分配给广告资源中的主机或群组,并且可以很好地介绍如何执行此操作here

从页面中取出的示例,在主机条目之后定义的变量:

[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909

这适用于少量主机,但在大规模工作时有更好的方法。

第h