2016-04-13 20 views
0

我有一個文件,其中包含一些Django將使用的環境變量,我需要能夠訪問其中的一些信息。Ansible中的外部文件中的環境變量

env_vars文件:

DB_USER='my_db_username' 
DB_PASSWORD='my_db_password' 

playbook.yml

--- 
- name: Test playbook 
    hosts: localhost 
    connection: localhost 

    tasks: 
     - debug: msg="username {{ lookup('env', 'DB_USER') }} password {{ lookup('env', 'DB_PASSWORD') }}" 

當我嘗試與失敗,出現以下錯誤-e選項調用它:

$ ansible-playbook playbook.yml -e @env_vars 

ERROR: failed to combine variables, expected dicts but got a 'dict' and a 'str' 

我也嘗試過以「源」env_vars文件。但是不能看到環境變量。

$ . env_vars; ansible-playbook playbook.yml 

PLAY [Test playbook] ********************************************************** 

GATHERING FACTS *************************************************************** 
ok: [localhost] 

TASK: [debug msg="username password "] *************************************** 
ok: [localhost] => { 
    "msg": "username password " 
} 

PLAY RECAP ******************************************************************** 
localhost     : ok=2 changed=0 unreachable=0 failed=0 

有沒有辦法讓文件中設置的變量「看到」或「加載」?我見過很多查找選項(ini,yml和其他),但沒有一個加載這種信息。

回答

2

變化:

DB_USER='my_db_username' 
DB_PASSWORD='my_db_password' 

到:

export DB_USER='my_db_username' 
export DB_PASSWORD='my_db_password' 
+0

我現在砍伐非常愚蠢的。哈哈哈......謝謝! –