ansible查找不适用于环境变量

ansible查找不适用于环境变量,ansible,environment-variables,lookup,Ansible,Environment Variables,Lookup,Ansible查找不适用于环境变量 这项工作: - name: WIN_SHELL | Get ComputerName win_shell: $Env:ComputerName register: computerName - debug: var: computerName.stdout_lines.0 这些都不能: - debug: msg: '{{lookup("env", "ComputerName")}}' - debug: msg: '{{ l

Ansible查找不适用于环境变量

这项工作:

- name: WIN_SHELL | Get ComputerName
  win_shell: $Env:ComputerName
  register: computerName

- debug:
    var: computerName.stdout_lines.0
这些都不能:

- debug:
    msg: '{{lookup("env", "ComputerName")}}'

- debug:
    msg: '{{ lookup("env", "COMPUTERNAME") }}'

- debug:
    msg: '{{ lookup("env", "computername") }}'

- debug:
    msg: '{{ lookup("env", "computerName") }}'
关于ansible查找,有什么我不明白的吗?还是有什么可以减轻罪责的情况阻止了这一切?我宁愿使用ansible lookup而不是win_shell来保持幂等性。

env,因为所有其他操作都是在控制器机器上执行的。在本例中,这一点在

允许您在调用Ansible时查询控制器上可用的环境变量

因此,您示例中的win_shell任务(在远程机器上执行)绝对不等同于在控制器上执行的查找测试

如果您没有在主机上禁用事实收集,即在playbook中设置gather_facts:false,则所有环境变量都应该可以在ansible_env字典中访问。下面的任务应该使您能够阅读所有这些文件,并确保您的文件设置正确,以及使用正确的名称

-名称:调试所有环境变量 调试: 变量:ansible_env env作为所有其他命令在控制器计算机上执行。在本例中,这一点在

允许您在调用Ansible时查询控制器上可用的环境变量

因此,您示例中的win_shell任务(在远程机器上执行)绝对不等同于在控制器上执行的查找测试

如果您没有在主机上禁用事实收集,即在playbook中设置gather_facts:false,则所有环境变量都应该可以在ansible_env字典中访问。下面的任务应该使您能够阅读所有这些文件,并确保您的文件设置正确,以及使用正确的名称

-名称:调试所有环境变量 调试: 变量:ansible_env
在运行playbook之前,您是否确定在您的环境中设置了env变量?另外,您是否尝试过使用此模块:在运行playbook之前,您是否确定在您的环境中设置了env变量?另外,你有没有尝试过这个模块:谢谢!我把它在我的脑海里切换;我以为ansible_env是来自控制器的环境,lookupenv,var是目标。谢谢!我把它在我的脑海里切换;我认为ansible_env是来自控制器的环境,lookupenv,var是目标。