add_host的范围

时间:2016-01-22 19:40:21

标签: ansible ansible-playbook

这是我试图运行的剧本。

---
# ansible/site.yml

- hosts: localhost
  gather_facts: yes
  connection: local
  sudo: no
  roles:
    - ec2

- hosts: ec2hosts
  gather_facts: yes
  user: ubuntu
  roles:
    - supervisor

这是ec2角色的一部分。

--- 
# ansible/roles/ec2/main.yml

# Provision EC2 instances
# ...
  register: ec2

- name: Add EC2 instances to host groups
  add_host: hostname={{ item.public_ip }} groups=ec2hosts
  with_items: ec2.instances

第一部分工作正常,主机似乎正确添加,但一旦进入下一个游戏,(在新创建的ec2hosts上安装主管),它给了我skipping: no hosts matched

那为什么我的主剧本不能识别第一次播放期间创建的主持人组?

编辑:

主机文件。我是否需要在此声明主机组才能全局访问?我已尝试删除[ec2hosts]行并运行而未将其指定为库存文件。

# inventory/hosts
[local]
localhost

[ec2hosts]

运行它:

ansible-playbook -i ansible/inventory/hosts ansible/site.yml -vvv    

相关产出:

...

TASK [ec2 : Add EC2 instances to host groups] ***************************

PLAY *******************************************************************
skipping: no hosts matched

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

1 个答案:

答案 0 :(得分:1)

看起来你的add_host模块的循环没有运行。检查并确保您的ec2.instances变量已正确填充