2016-04-13 2 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

Я сейчас рубка довольно глупо. Ахахах спасибо! –

Смежные вопросы