mnd*_*dhr 8 linux yaml environment-variables ansible ansible-playbook
我在使用远程主机的环境变量时遇到问题.例如,当我尝试{{lookup('env','PATH')}}时,这将返回我的来宾机器的路径,而不是远程主机的路径.
如何获取/更改远程主机的环境变量?
我的剧本:
---
- name : playbook
hosts : webservers
gather_facts: yes
remote_user: user1
vars:
Path: "{{lookup('ansible_env','PATH')}}"
roles :
- task1
- task2
- task3
Run Code Online (Sandbox Code Playgroud)
返回我的机器的路径而不是名为user1的远程主机的路径我是ansible的初学者需要一些帮助.先感谢您.
lar*_*sks 11
明确记录了lookup函数的行为:
插件允许从外部源访问Ansible中的数据.这些插件在Ansible控制机器上进行评估......
有关访问远程环境变量的常见问题解答:
Ansible 1.4还将通过'ansible_env'变量中的事实使远程环境变量可用:
Run Code Online (Sandbox Code Playgroud){{ ansible_env.SOME_VARIABLE }}
请注意远程事实(例如ansible_env,仅在启用事实收集时才可用(这是ansible的默认行为,但可以在配置文件或播放簿中禁用).
如果要修改远程主机的环境,请再次查看描述该指令的文档environment:
Ansible使您可以使用'environment'关键字轻松配置环境.这是一个例子:
Run Code Online (Sandbox Code Playgroud)- hosts: all remote_user: root tasks: - apt: name=cobbler state=installed environment: http_proxy: http://proxy.example.com:8080
这些为此特定任务设置环境变量.这不是一个持久的修改.