簡體   English   中英

如何用ansible設置現有的linux環境變量?

[英]How to set existing linux environment variables with ansible?

RHEL 6.x上的Ansible v2.4.0.0

我看到如何使用ansible設置linux環境變量 ,但它涉及設置一個新的環境變量。 如果我嘗試設置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 )環境中的關鍵字。

我不知道為什么,但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}的引號中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM