使用包含在ansible中的vars_文件
我有一个剧本,我想转换成一个模板,并在别处使用使用包含在ansible中的vars_文件,ansible,Ansible,我有一个剧本,我想转换成一个模板,并在别处使用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.ym
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
这很好,但我想加密一些变量,如下所示:
$ 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
Mytemplate\u standalone.yml
包含不同角色的列表…:
$ cat template_standalone.yml
---
- name: Setting up standalone environment
hosts: "{{ hosts }}"
roles:
- role: php7
- role: nginx
...
…需要服务器密码等配置,我不希望主文件中有明文。有没有想过我可以做些什么
vars_文件
不支持附带的剧本(从Ansible 2.3开始)
您可以选择使用额外的变量文件:
ansible-playbook -e @secrets/demo.example.com.yml env_demo.yml
或者将组变量文件用于
all
group–将加密文件放入/group\u vars/all/demo.example.com.yml
谢谢,额外变量方法对我有效。我将添加一条注释,说明您需要指定它。