Ansible 可解角色全局变量
我使用角色部署我的机器,角色有变量,但有时我有多个角色,我想在根文件夹中放置一个全局变量文件,因此可以使用Ansible 可解角色全局变量,ansible,ansible-role,Ansible,Ansible Role,我使用角色部署我的机器,角色有变量,但有时我有多个角色,我想在根文件夹中放置一个全局变量文件,因此可以使用vars/global.yml和覆盖role/vars/main.yml #vars/global.yml somevariable: somevalue 但若根文件夹中有全局变量,只需覆盖基于角色的变量并实现vars/global即可 ├── Playbook.yml ├── ansible.cfg ├── roles │ ├── Ansible-Role-UserProfile │
vars/global.yml
和覆盖role/vars/main.yml
#vars/global.yml
somevariable: somevalue
但若根文件夹中有全局变量,只需覆盖基于角色的变量并实现vars/global即可
├── Playbook.yml
├── ansible.cfg
├── roles
│ ├── Ansible-Role-UserProfile
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── templates
│ │ │ ├── rm.j2
│ │ │ └── vimrc.j2
│ │ └── vars
│ │ └── main.yml
└── vars
└── global.yml
角色和变量的可重用性与本机有关吗?请看本章
列表中“角色变量”后面列出的所有角色都具有优先权,因此请使用其中任何一个
- 块变量(仅适用于块中的任务)
- 任务变量(仅用于任务)
- 角色(和include_角色)参数
- 包括参数
- 包括
- 设置事实/注册变量
- 额外变量(始终赢得优先权)
否则,使用优先级最低的角色默认值来定义变量值。角色默认值由问题示例中的play vars覆盖。将全局变量放入组变量/all中。在中查看它如何适合您的目录结构
角色变量优先于组变量,因此您可以覆盖角色中的全局值。OP写道“我想在根文件夹中放置一个全局变量文件,因此可以使用vars/global.yml并覆盖Role/vars/main.yml”——您正好回答了相反的请求。我遗漏了什么?如果他是这个意思,我误解了这个问题。请详细说明你的答案。