【发布时间】:2018-04-18 16:18:09
【问题描述】:
我的剧本(test.yml)如下:
- hosts: localhost
connection: local
gather_facts: false
roles:
- env
environment:
AWS_ACCESS_KEY_ID: "{{ access }}"
tasks:
- debug:
msg: "Hello"
我收到以下错误:
TASK [env : 加载 VPC 变量文件] ****************************************************** ****************************************************** ****致命:[本地主机]:失败! => {“失败”:真,“味精”:“该字段 “环境”的值无效,其中似乎包含 未定义的变量。错误是:“访问”是 未定义\n\n错误似乎出现在 '/var/yogesh/test/roles/env/tasks/main.yml':第 1 行,第 3 列,但是 可能\n位于文件中的其他位置,具体取决于确切的语法 问题。\n\n违规行似乎是:\n\n\n- name: Load VPC 变量文件\n ^ 这里\n"}
播放回顾 ****************************************************** ****************************************************** ****************************** 本地主机:ok=0 已更改=0 无法访问=0
失败=1
我的角色 (roles/env/tasks/main.yml) 如下:
- name: Load VPC variables file
include_vars: "vault.yml"
这个vault.yml 看起来像:
access: 1234
test.yml 和 vault.yml 在同一目录中。
现在,如果我像下面这样更改 playbook test.yml,它会以某种方式起作用。
- hosts: localhost
connection: local
gather_facts: false
vars_files:
- vault.yml
environment:
AWS_ACCESS_KEY_ID: "{{ access }}"
tasks:
- debug:
msg: "Hello"
我不确定为什么会这样。有人可以解释一下吗?我们是否必须仅在 vars_files 中声明 Vault 文件?有没有更好/最佳实践的选择?
Ansible 版本:2.3.0.0
【问题讨论】:
标签: ansible ansible-vault