2016-04-27 117 views
1

我需要設置環境變量建立在啓動一些應用程序,我使用vars在劇本文件:管理與環境變量ansible

--- 
- hosts: all 
    sudo: yes 
    vars: 
    build_env: 
     VAR1: value1 
     VAR2: value2 
     VAR3: value3 

而且隨着environment設置成任務建立應用

- name: Build app 
    environment: "{{build_env}}" 
    command: "{{ item }} chdir={{app1}}" 
    with_items: 
    - npm install 
    - bower 
    - gulp 

另外我需要將相同的變量添加到/etc/environment,但我不會在另一個任務中複製相同的變量,任何想法?

回答

0

ansible-劇本-c本地-i 127.0.0.1,test.yml

test.yml:

--- 
- hosts: all 
    sudo: yes 
    vars: 
    build_env: 
     VAR1: value1 
     VAR2: value2 
     VAR3: value3 

    tasks: 
    - name: Build app 
    environment: "{{build_env}}" 
    shell: source /etc/environment; echo $VAR1 > ~/111 
    - name: Build app 
    environment: "{{build_env}}" 
    shell: source /etc/environment;env >> /root/111 

測試瓦爾:

# cat /etc/environment 
VAR1=2 
export VALERY=x 
export VAR2=ss 
CCCCCCCCCC=xx 

結果:

# cat ~/111 
value1 
HOSTNAME=38b07f75ca28 
SHLVL=1 
HOME=/root 
VALERY=x 
_=/usr/local/bin/ansible-playbook 
TERM=xterm 
VAR1=value1 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
VAR2=value2 
VAR3=value3 
LANG=C 
LC_MESSAGES=C 
PWD=/ 
LC_ALL=C 

Conclusiosn:

  • CCCCCCCCCC=xx - 沒有導出

  • environment:覆蓋變量,所以你應該導出/etc/environment

所有 變量