Назад | Перейти на главную страницу

ansible-playbook с group_vars

Пытаюсь организовать ансибл из 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