RHEL 6.x上的Ansible v2.4.0.0
我看到How to set linux environment variables with ansible,但它涉及设置新的环境变量。如果我尝试设置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') }}
我已经尝试过两种方式,如上所示,评论一种方式与另一种方式,我在两种情况下都会遇到语法错误。我错过了什么?
答案 0 :(得分:3)
这是为单个任务扩展PATH
变量的正确方法:
- name: Execute task with extended PATH
shell: echo $PATH
environment:
PATH: "/usr/other/bin:{{ ansible_env.PATH }}"
environment
本身并不是一项操作,它是修改操作的关键字' (在我的示例中为shell
)环境。
答案 1 :(得分:0)
我不知道为什么,但Konstantin Suvorov解决方案对我不起作用。
经过一些测试后,我将以下Ansible部分与Vagrant(Ubuntu guest)结合使用。
-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
这也适用于PATH
,将其添加到${PATH}
的引号中。