我有一个我希望转换为模板的剧本,并在其他地方使用include
包含它,并覆盖一些变量,如下所示:
$ cat env_demo.yml
---
- include: template_standalone.yml
vars:
hosts: demo.example.com
environment_name: "Demo environment"
这很好用,但后来我想加密一些变量,如下所示:
$ cat env_demo_secret.yml
---
- include: template_standalone.yml
vars:
hosts: demo.example.com
vars_files:
- secrets/demo.example.com.yml
现在我收到了这个错误:
ERROR! 'vars_files' is not a valid attribute for a PlaybookInclude
我的template_standalone.yml
包含不同角色的列表......:
$ cat template_standalone.yml
---
- name: Setting up standalone environment
hosts: "{{ hosts }}"
roles:
- role: php7
- role: nginx
...
...需要像服务器密码等配置,而我在主文件中的明文中却没有。关于我能做什么的任何想法?
答案 0 :(得分:1)
vars_files
(自Ansible 2.3起)
您可以选择使用额外的变量文件:
ansible-playbook -e @secrets/demo.example.com.yml env_demo.yml
或者使用all
群组变量文件 - 将加密文件放入./group_vars/all/demo.example.com.yml
。