Pet*_*eks 1 lookup environment-variables ansible
Ansible 查找不适用于环境变量。
这有效:
- name: WIN_SHELL | Get ComputerName
win_shell: $Env:ComputerName
register: computerName
- debug:
var: computerName.stdout_lines.0
Run Code Online (Sandbox Code Playgroud)
这些都没有:
- debug:
msg: '{{lookup("env", "ComputerName")}}'
- debug:
msg: '{{ lookup("env", "COMPUTERNAME") }}'
- debug:
msg: '{{ lookup("env", "computername") }}'
- debug:
msg: '{{ lookup("env", "computerName") }}'
Run Code Online (Sandbox Code Playgroud)
关于 ansible 查找有什么我不明白的地方吗?或者是否有一些情有可原的情况阻止了这一点?我宁愿使用 ansible 查找而不是 win_shell 来保持幂等性。
env
因为所有其他查找都是在控制器机器上执行的。在本例中,查找文档页面的概要中很好地回忆了这一点env
允许您在调用 Ansible 时查询控制器上可用的环境变量。
因此,win_shell
您示例中的任务(在远程计算机上执行)绝对不等于您的查找测试(在控制器上执行)。
如果您没有在主机上禁用事实收集(即通过gather_facts: false
在剧本中设置),则所有环境变量都应该可以在ansible_env
字典中访问。以下任务应该使您能够阅读所有这些内容并确保您的设置正确(以及获取其正确的名称以使用它)。
- name: Debug all env vars
debug:
var: ansible_env
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4666 次 |
最近记录: |