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