如何设置远程主机的环境变量

mnd*_*dhr 6 linux 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 的初学者需要一些帮助。先感谢您。

waz*_*azy 5

您可以使用 environment 关键字为任务或剧本设置 PATH。

environment:
  PATH: "{{ ansible_env.PATH }}:/thingy/bin"
  SOME: value
Run Code Online (Sandbox Code Playgroud)

Ansible 常见问题解答在顶部http://docs.ansible.com/ansible/faq.html附近提到了这一点

因此,在您的情况下,请尝试以下操作:

- name: Set Path for java
  environment:
    PATH: "$JAVA_HOME/bin:{{ ansible_env.PATH }}"
Run Code Online (Sandbox Code Playgroud)

设置环境参考:http : //docs.ansible.com/ansible/playbooks_environment.html