带有 group_vars 的 ansible-playbook

带有 group_vars 的 ansible-playbook

我正在尝试将 ansible 从 ssh 模型组织到 pull。之前我有一个这样的设置

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

在 1.9 版本中你不能这样做,在稳定版本 2.0.2.0 中也行不通。你应该阅读以下内容:http://docs.ansible.com/ansible/playbooks_best_practices.html。我建议这样运行:

ansible-playbook -i staging/inventory test.yml

相关内容