Пытаюсь организовать ансибл из ssh модели, чтобы вытащить. Раньше у меня была такая установка, как
group_vars/
all
prod
stage
dev
Теперь я пытаюсь запустить все через cron, поэтому попробовал эту настройку
staging/
inventory
group_vars/
server
prod/
inventory
group_vars/
server
инвентарь на обоих выглядит
[server]
localhost ansible_connection=local
для этапа мои group_vars выглядят как
---
rails_env: staging
У меня есть пример игры
- hosts: server
user: root
sudo: no
gather_facts: True
tasks:
- debug: msg="reading from {{ rails_env }}"
Результат моего запуска
# ansible-playbook -i staging test.yml
PLAY [server] *****************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [debug msg="reading from {{ rails_env }}"] ******************************
fatal: [localhost] => One or more undefined variables: 'rails_env' is undefined
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/root/test.retry
localhost : ok=1 changed=0 unreachable=1 failed=0
Не уверен, что я делаю неправильно, так как он должен это понять
В версии 1.9 этого сделать нельзя, в стабильной версии 2.0.2.0 тоже не работает. Вы должны прочитать это: http://docs.ansible.com/ansible/playbooks_best_practices.html . Предлагаю бежать вот так:
ansible-playbook -i staging/inventory test.yml