如何使用ansible设置现有的linux环境变量?

如何使用ansible设置现有的linux环境变量?,ansible,ansible-2.x,Ansible,Ansible 2.x,RHEL 6.x上的Ansible v2.4.0.0 我明白了,但它涉及设置一个新的环境变量。如果我试图设置PATH变量,则解决方案不适用于我。我知道 - name: Add /usr/other/bin to PATH dir to use the git binary there environment: # PATH: /usr/other/bin:{{ ansible_env.PATH }} PATH: /usr/other/bin:{{ lookup('env','P

RHEL 6.x上的Ansible v2.4.0.0

我明白了,但它涉及设置一个新的环境变量。如果我试图设置PATH变量,则解决方案不适用于我。我知道

- name: Add /usr/other/bin to PATH dir to use the git binary there
  environment:
#    PATH: /usr/other/bin:{{ ansible_env.PATH }}
    PATH: /usr/other/bin:{{ lookup('env','PATH') }}

如上所示,我尝试了两种方法,分别对其中一种方法和另一种方法进行了注释,但在这两种情况下都出现了语法错误。我遗漏了什么?

这是为单个任务扩展
路径变量的正确方法:

- name: Execute task with extended PATH
  shell: echo $PATH
  environment:
    PATH: "/usr/other/bin:{{ ansible_env.PATH }}"
environment
本身不是一个动作,它是修改动作(在我的示例中是
shell
)环境的关键字。

我不知道为什么,但解决方案对我不起作用

经过一些测试,我将下面的Ansible部分与Vagrant(UbuntuGuest)结合使用


这也适用于
PATH
,方法是将它添加到带有
${PATH}

的引号中。谢谢,现在这样做很有意义。
-name: Creating environment variable via file in /etc/profile.d
 args:
   chdir: /etc/profile.d
 shell: echo "export M2_HOME=/home/vagrant/maven" > env.sh