Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible未正确设置环境变量_Ansible - Fatal编程技术网

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

我试图为ansible游戏设置一个环境变量。 基于此,我应该能够做如下事情:

---
- 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 配置设置、其他用户的环境或 执行其他插件,如查找和筛选