Ansible group_vars环境变量替代
将其放入Ansible group_vars环境变量替代,ansible,Ansible,将其放入组\u vars/all: default_environment: HOME2: "{{ ansible_env.HOME }}" 在任务中使用定义环境时: environment: "{{ default_environment }}" 我明白了: The field 'environment' has an invalid value, which includes an undefined variable. The error was: {u'HOME2': u'{
组\u vars/all
:
default_environment:
HOME2: "{{ ansible_env.HOME }}"
在任务中使用定义环境时:
environment:
"{{ default_environment }}"
我明白了:
The field 'environment' has an invalid value, which includes an undefined variable. The error was: {u'HOME2': u'{{ ansible_env.HOME }}'}: 'ansible_env' is undefined
exception type: <class 'ansible.errors.AnsibleUndefinedVariable'>
组变量/all
- name: Test
hosts: hosts1
become: true
become_user: user1
environment:
"{{ default_environment }}"
tasks:
- debug:
msg: "{{ ansible_env }}"
default_environment:
HOME2: "{{ ansible_env.HOME }}"
使用ansible plyabook test.yml运行时输出
PLAY [Test] ********************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************************************************************************************************************************
fatal: [host1]: FAILED! => {}
MSG:
The field 'environment' has an invalid value, which includes an undefined variable. The error was: {u'HOME2': u'{{ ansible_env.HOME }}'}: 'ansible_env' is undefined
exception type: <class 'ansible.errors.AnsibleUndefinedVariable'>
exception: {u'HOME2': u'{{ ansible_env.HOME }}'}: 'ansible_env' is undefined
to retry, use: --limit @/work/ansible/test.retry
PLAY RECAP *********************************************************************************************************************************************************************************************************************************
host1 : ok=0 changed=0 unreachable=0 failed=1
播放[测试]********************************************************************************************************************************************************************************************************************************
任务[收集事实]*********************************************************************************************************************************************************************************************************************
致命:[host1]:失败!=>{}
味精:
字段“environment”的值无效,其中包含未定义的变量。错误是:{u'HOME2':u'{{ansible_env.HOME}}}:'ansible_env'未定义
异常类型:
异常:{u'HOME2':u'{{ansible_env.HOME}}}:'ansible_env'未定义
要重试,请使用:--limit@/work/ansible/test.retry
重演*********************************************************************************************************************************************************************************************************************************
主机1:正常=0更改=0无法访问=0失败=1
错误消息是:
“ansible_env”未定义
你没有收集事实
在您试图仅收集事实的剧本之前运行剧本,而不声明
环境
:
- name: Test
hosts: hosts1
become: true
become_user: user1
- name: Test
hosts: hosts1
become: true
become_user: user1
gather_facts: false
environment:
"{{ default_environment }}"
tasks:
- debug:
msg: "{{ ansible_env }}"
实际上,这是在
任务[收集事实]
阶段打印的:)实际上,您的问题中没有任何东西可以证明这一点。在这种情况下,它会尝试通过ansible_env
事实收集环境设置的事实。一种鸡和蛋的情况。在不设置此环境的情况下,使用单独的播放来收集事实。并尝试将完全可复制的示例添加到您的原始帖子中,以便其他人可以看到完整的上下文。@techraf,因此我的评论提供了额外的信息:)请查看编辑,并在问题本身中提供更多信息。@KonstantinSuvorov好的,让我试试。。。增加了更多的信息,尽管这并不比以前多多少。