是否可以在特定主机上运行ansible并指定一个组

时间:2019-12-19 18:21:21

标签: ansible

我当前正在使用以下命令在特定主机上运行剧本:

ansible-playbook webserver.yml -i 127.0.0.1,

我想做的是在此命令行中指定环境(即dev,stage,prod),并为每个环境创建一个yaml文件。有人知道实现此目标的方法吗?我们正在努力避免为所有清单建立文件的集中列表。

TIA

1 个答案:

答案 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