首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >add_host范围

add_host范围
EN

Stack Overflow用户
提问于 2016-01-22 19:40:20
回答 1查看 996关注 0票数 2

这就是我想要运行的剧本。

代码语言:javascript
复制
---
# ansible/site.yml

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

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

这里是ec2角色的一部分。

代码语言:javascript
复制
--- 
# 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]行并运行,而不将其指定为库存文件。

代码语言:javascript
复制
# inventory/hosts
[local]
localhost

[ec2hosts]

运行它:

代码语言:javascript
复制
ansible-playbook -i ansible/inventory/hosts ansible/site.yml -vvv    

相关产出:

代码语言:javascript
复制
...

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

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

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-22 22:14:58

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34954623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档