这是我试图运行的剧本。
---
# 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
答案 0 :(得分:1)
看起来你的add_host模块的循环没有运行。检查并确保您的ec2.instances变量已正确填充