Ansible未正确设置环境变量
我试图为ansible游戏设置一个环境变量。 基于此,我应该能够做如下事情:Ansible未正确设置环境变量,ansible,Ansible,我试图为ansible游戏设置一个环境变量。 基于此,我应该能够做如下事情: --- - hosts: localhost connection: local environment: test_var: "a vault here" tasks: - debug: msg: "Test var is: {{lookup('env', 'test_var')}}" - debug: msg
---
- hosts: localhost
connection: local
environment:
test_var: "a vault here"
tasks:
- debug:
msg: "Test var is: {{lookup('env', 'test_var')}}"
- debug:
msg: "Home is here {{lookup('env', 'HOME')}}"
但我显然遗漏了什么或者遇到了一个bug
osboxes@osboxes:~$ ansible-playbook --version
ansible-playbook 2.9.6
<snip...>
osboxes@osboxes:~$ ansible-playbook test.yaml
<snip...>
TASK [debug] ****************************************************************************************************************************************************************
ok: [localhost] => {
"msg": "Test var is: " # where is the env variable?
}
TASK [debug] ****************************************************************************************************************************************************************
ok: [localhost] => {
"msg": "Home is here /home/osboxes"
}
osboxes@osboxes:~$ansible剧本--版本
ansible剧本2.9.6
osboxes@osboxes:~$ansible playbook test.yaml
任务[调试]****************************************************************************************************************************************************************
确定:[本地主机]=>{
“msg”:“测试变量为:”#环境变量在哪里?
}
任务[调试]****************************************************************************************************************************************************************
确定:[本地主机]=>{
“msg”:“主页在这里/Home/osbox”
}
使用environment
插件设置env
时,不会影响已在运行的ansible会话
您必须执行以下操作:
---
- hosts: localhost
connection: local
environment:
test_var: "a vault here"
tasks:
- shell: echo $test_var
register: test_var
- debug:
msg: "Test var is: {{ test_var.stdout }}"
- debug:
msg: "Home is here {{lookup('env', 'HOME')}}"
上述剧本将返回以下输出:
PLAY [localhost] ****************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************
ok: [localhost]
TASK [shell] ********************************************************************************************************************************************************
changed: [localhost]
TASK [debug] ********************************************************************************************************************************************************
ok: [localhost] => {
"msg": "Test var is: a vault here"
}
TASK [debug] ********************************************************************************************************************************************************
ok: [localhost] => {
"msg": "Home is here /home/ps"
}
PLAY RECAP **********************************************************************************************************************************************************
localhost : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
注意:请参阅此文档链接
使用环境设置值时:在播放或块级别,它
仅对播放或区块内执行的任务可用
由同一用户。环境:关键字不影响Ansible
自身、Ansible配置设置、其他环境
用户,或执行其他插件,如查找和筛选。
使用环境设置的变量:不会自动变为Ansible
事实,即使你把它们设定在游戏层面。您必须包含一个
在剧本中明确收集事实任务并设置环境
关键字将这些值转换为可解释的事实
上述文本中需要强调的要点:
环境:关键字不影响Ansible本身,Ansible
配置设置、其他用户的环境或
执行其他插件,如查找和筛选