我试图将所有环境变量存储在一个名为 variables.yml
的文件中,如下所示:
---
doo: "external"
然后我有一个这样的剧本:
---
- hosts: localhost
tasks:
- name: "i can totally echo"
environment:
include: variables.yml
ugh: 'internal'
shell: echo "$doo vs $ugh"
register: results
- debug: msg="{{ results.stdout }}"
回显的结果是' vs internal'
。
我怎样才能改变它,使结果是'external vs internal'
。非常感谢!
最佳答案
假设名为variables.ext
的外部变量文件结构如下
---
EXTERNAL:
DOO: "external"
比,根据Setting the remote environment和 Load variables from files, dynamically within a task一个小测试可能看起来像
---
- hosts: localhost
become: false
gather_facts: false
tasks:
- name: Load environment variables
include_vars:
file: variables.ext
- name: Echo variables
shell:
cmd: 'echo "${DOO} vs ${UGH}"'
environment:
DOO: "{{ EXTERNAL.DOO }}"
UGH: "internal"
register: result
- name: Show result
debug:
msg: "{{ result.stdout }}"
导致输出
TASK [Show result] ********
ok: [localhost] =>
msg: external vs internal
关于environment-variables - Ansible - 包括来自外部 YML 的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26165152/