需要帮助了解Ansible变量执行的工作流顺序吗

需要帮助了解Ansible变量执行的工作流顺序吗,ansible,ansible-playbook,Ansible,Ansible Playbook,需要帮助了解Ansible任务或剧本中Ansible变量执行的工作流顺序 当我们使用所有这些时,最后使用了哪个变量 1) 瓦尔斯 2) 组变量 3) 东道主 4) 额外费用 5) 剧本中的var_提示 6) 在任务中设置_事实 7) 剧本变形金刚档案 8) 游戏手册 8) 角色包括vars目录-roles/foo/vars/main.yml 9) 角色定义的变量-{role:foo,param1:1000,param2:2000,标记:['foo','bar']} 10) 包括的任务包括 11)

需要帮助了解Ansible任务或剧本中Ansible变量执行的工作流顺序

当我们使用所有这些时,最后使用了哪个变量

1) 瓦尔斯

2) 组变量

3) 东道主

4) 额外费用

5) 剧本中的var_提示

6) 在任务中设置_事实

7) 剧本变形金刚档案

8) 游戏手册

8) 角色包括vars目录-roles/foo/vars/main.yml

9) 角色定义的变量-{role:foo,param1:1000,param2:2000,标记:['foo','bar']}

10) 包括的任务包括

11) 基于库存的变量

Ansible文件中的部分说明如下:

很多人可能会问变量是如何覆盖另一个变量的。 归根结底,Ansible的哲学是你最好知道在哪里 把一个变量,然后你必须考虑它少很多

避免在47个位置定义变量“x”,然后问问题 “使用哪个x”。为什么?因为那不是Ansible的禅宗哲学 做事的方式

只有一座帝国大厦。一个蒙娜丽莎等人物 找出定义变量的位置,不要使其复杂化


如果相同名称的多个变量定义在不同的 排名,他们以一定的顺序获胜,即:

  • -e变量总是赢的
  • 然后是“其他大部分”
  • 然后是库存中定义的变量
  • 然后是发现的关于一个系统的事实
  • 然后是“角色默认值”,它们是最“默认”的,并且优先于所有内容

在上面的docs链接中有很多更具体的例子。

如果我在所有变量中使用一个相同的键,并且具有不同的值。例如:name:apache name:nginx name:lighttpd name:tomcat name:jettythanks我已经有了您提供的url,但我的问题仍然是“然后是“其他大部分内容”?”,我想知道的是,只有对“谁总是赢”的明确声明,然后是“其他大部分内容”“@RaviBhure我没有关于所有11+可能性优先级的信息。但是,欢迎您创建一个场景来告诉您这一点。是的@Mxx,我会这样做,因为我在多个阶段中使用了具有不同值的单个变量键,这可以节省时间,并避免在我的多操作系统数据中心/区域/应用程序环境中使用不同的变量文件。