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

6

我在处理远程主机的环境变量时遇到了问题。例如,当我尝试{{ lookup('env', 'PATH') }}时,返回的是我的guest machine而不是远程主机的路径。

如何获取/更改远程主机的环境变量?

我的playbook:

---
- name : playbook
  hosts : webservers
  gather_facts: yes
  remote_user: user1
  vars:
   Path: "{{lookup('ansible_env','PATH')}}"
  roles :
 - task1
 - task2 
 - task3 

这返回的是我的机器路径,而不是名为user1的远程主机路径。 我是Ansible的初学者,需要一些帮助。 提前谢谢。


你能否编辑你的问题,展示你的任务、清单以及你如何调用Ansible? - ydaetskcoR

我的Playbook只包含以下这些行:

  • name: 设置Java路径 command: bash -c "export $JAVA_HOME/bin:$PATH"
- mndhr
1
请在此处查看答案:https://dev59.com/El4c5IYBdhLWcg3wl7bm#27736434 - Michal Gasek
1个回答

8

要使用远程主机名为“vagrant”的 PATH 工作,我会编写以下代码: 环境变量: PATH: "{{ ansible_env.PATH }}:/vagrant/bin" ?? @wazy - mndhr
这将在您指定此任务的主机上将/vagrant/bin添加到PATH中。 - wazy
我尝试使用 "{{ ansible_env.PATH }}",但它返回了我的机器的 PATH。我想要的是在文件 /etc/ansible/hosts 中提到的远程主机的 PATH,而不是我安装 ansible 的机器的 PATH。 - mndhr
你是否在指定远程主机的play下运行任务?请展示你的play。 - wazy
我修改了我的帖子,在其中你可以看到我的Playbook。 - mndhr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接