簡體   English   中英

如何在ansible playbook中設置環境變量

[英]How to set environment variables in ansible playbook

我試圖通過ansible playbook設置環境變量來安裝帶有vbisam的gnucobol。 但是在執行playbook時沒有設置變量。

 name: Setting variables for CPPFLAGS
 shell: "echo $CPPFLAGS"
 environment:
  CPPFLAGS: -I/opt/vbisam-2.0/include

 name: Setting variables for LDFLAGS
 shell: "echo $LDFLAGS"
 environment:
  LDFLAGS: -L/opt/vbisam-2.0/lib

 name: Setting variables for LD_LIBRARY_PATH
 shell: "echo $LD_LIBRARY_PATH"
 environment:
  LD_LIBRARY_PATH: /opt/vbisam-2.0/lib:${LD_LIBRARY_PATH}

有人可以幫我解決這個問題。

您的環境變量肯定會被設置。 您現有的任務不包含任何驗證此操作的嘗試,所以讓我們添加一個。 例如,如果我們運行此劇本:

- hosts: localhost
  tasks:
    -  name: Setting variables for CPPFLAGS
       shell: "echo $CPPFLAGS"
       environment:
         CPPFLAGS: -I/opt/vbisam-2.0/include
       register: cppflags

    - debug:
        var: cppflags.stdout

我們看作輸出:

PLAY [localhost] *******************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [localhost]

TASK [Setting variables for CPPFLAGS] **********************************************************************************************************
changed: [localhost]

TASK [debug] ***********************************************************************************************************************************
ok: [localhost] => {
    "cppflags.stdout": "-I/opt/vbisam-2.0/include"
}

PLAY RECAP *************************************************************************************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0   

正如@techraf在評論中暗示的那樣,重要的是要理解在任務上使用environment設置環境變量僅為該任務設置環境變量。 也就是說,如果你想同時設置CPPFLAGSLDFLAGSLD_LIBRARY_PATH ,你需要做類似的事情:

    -  name: Setting variables for CPPFLAGS
       shell: "echo $CPPFLAGS"
       environment:
         CPPFLAGS: -I/opt/vbisam-2.0/include
         LDFLAGS: -L/opt/vbisam-2.0/lib
         LD_LIBRARY_PATH: /opt/vbisam-2.0/include
       register: cppflags

如果需要在多個任務上設置這些變量,則需要對每個任務應用相同的environment關鍵字,或者在播放時設置environment而不是單個任務。

暫無
暫無

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

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