Ansible:想要将变量应用于一组库存

时间:2014-08-05 16:43:27

标签: ansible ansible-playbook

我定义了一些库存,包含变量中定义的软件版本号。

我希望在我的产品和UAT库存之间共享相同的版本号,以确保产品发布与UAT中测试的产品匹配。

是否可以在某些库存之间共享变量而不是其他库存(我认为这可能意味着概念性地"分组"库存)?

我当前设置的示例

/prod/group_vars/all的内容:

   my-app-verion: 1.0.0

/uat/group_vars/all的内容:

   my-app-verion: 1.0.0

/dev/group_vars/all的内容:

   my-app-verion: LATEST

我希望有一个由produat库存共享的文件并包含

    my-app-verion: 1.0.0

2 个答案:

答案 0 :(得分:1)

为什么不在库存中使用群组?可以有一个发布组和一个最新组。然后你可以拥有group_vars / release和group_vars / latest

您的库存文件将是:

PROD:

[release]
prod1
prod2

prodlike:

[release]
prod3
prod4

试验:

[latest]
dev1
dev2

mixedenv:

[releasse]
lab1
lab2
[latest]
lab3

答案 1 :(得分:0)

您可以通过制作库存目录将库存文件分组在一起。将多个库存文件放在一个目录中。然后,您可以在运行playbook时定位inventory目录,Ansible将从目录中的所有文件加载库存。

您还可以将group_vars和host_vars目录放在此目录中。