我当前正在使用以下命令在特定主机上运行剧本:
ansible-playbook webserver.yml -i 127.0.0.1,
我想做的是在此命令行中指定环境(即dev,stage,prod),并为每个环境创建一个yaml文件。有人知道实现此目标的方法吗?我们正在努力避免为所有清单建立文件的集中列表。
TIA
答案 0 :(得分:1)
在Amazon Web Services中,您可以在剧本的主机定义中使用标签:
-主机:“ tag_Type_apache:&tag_Environment _ {{tag_env}}”
角色: -apache_ws_config
然后,您可以在运行时传递tag_env变量,以允许您在特定环境中的特定服务器类型上运行播放。这样,您无需维护服务器列表。我敢肯定还有其他方法可以与其他云提供商或esxi一起做到这一点。
如果您不使用通过env托管您的主机的aws,也可以有一个单独的主机/清单文件:
[usnonprod]
10.x.x.x var1 = host1
10.x.x.y var1 = host2
[usprd]
10.y.x.x var1 = host1
10.y.x.y var1 = host2
然后您可以像这样在主机的主机条目中使用这些组(usprd,usnonprod等):
主机:usnonprod
调用时:ansible-playbook -i库存文件.yml letsplay.yml
请参阅:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html