使用多个主机进行部署时,如何遍历不同的变量?

时间:2019-07-24 13:25:55

标签: ansible

目前,我正在考虑一种解决方案,该方法如何遍历变量文件并使用在

中定义的变量文件中保存的变量

/roles/webservers for each different host(对于每个主机,它都有自己的唯一属性和变量)。变量位于/roles/webservers/variables/webserver_variables.yml

例如

host1 needs the following attributes from the file:  
  - fantastic_value a: raccoon  
 - fantastic_value b: duck  
host2 needs the following attributes from the file:  
 - fantastic_value a: sheep  
 - fantastic_value b: cow  

以上内容纯粹是为了说明我的观点。

这些变量以我用于Linux Web服务器的特定角色(Web服务器)在变量文件中定义。

如何使它工作,以便host1和host2获得适当的值?

我尝试用with_items遍历一个列表,但是没有成功。

1 个答案:

答案 0 :(得分:2)

实现此目的的一种方法是在yaml文件中包含变量和值。 yaml文件名应与 host_vars 文件夹中的主机名相同。

下面是示例目录布局

|- inventory           # inventory file for servers
|- group_vars/
|  |- group1.yml       # here we assign variables to particular groups
|  `- group2.yml
`- host_vars/
   |- host1.yml        # here we assign variables to particular host
   `- host2.yml
host_vars / host1.yml
---
fantastic_value_a: 'raccoon'
fantastic_value_b: 'duck'
host_vars / host2.yml
---
fantastic_value_a: 'sheep'
fantastic_value_b: 'cow'

有关更多信息,请检查此link