这就是我想要运行的剧本。
---
# 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 发布于 2016-01-22 22:14:58
看起来您的add_host模块循环没有运行。检查并确保ec2.instents变量已正确填充
https://stackoverflow.com/questions/34954623
复制相似问题