首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible Dynamic Inventory groups不工作

Ansible Dynamic Inventory groups不工作
EN

Stack Overflow用户
提问于 2018-09-07 06:33:16
回答 1查看 650关注 0票数 0

我正在使用ansible的ec2 dynamic inventory脚本,并创建了一个相当简单的概念证明。这是ec2.pyec2.ini旁边的groups文件的内容

代码语言:javascript
复制
[tag_classification_server_type_1]

[app_servers:children]
tag_classification_server_type_1

[stage:children]
app_servers

[stage:vars]
environment_name = stage

当我使用该清单对标记组执行ping操作时,它按预期工作:

代码语言:javascript
复制
$>ansible -i inventory/stage/ec2.py tag_classification_server_type_1 -m ping --private-key ~/.ssh/foo.pem 
12.345.67.89 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

但是尝试使用定义的组失败了(我在这里显示了stage,但是当尝试与app_servers组通信时,同样的输出也是正确的):

代码语言:javascript
复制
$>ansible -i inventory/stage/ec2.py stage -m ping --private-key ~/.ssh/foo.pem
 [WARNING]: Could not match supplied host pattern, ignoring: stage

 [WARNING]: No hosts matched, nothing to do

我以前在ec2中使用过ansible中的群组,从来没有遇到过任何问题。我下载了完全新鲜的ec2.iniec2.py文件,以确保我没有不小心修改它们。

当我检查清单ansible-inventory ec2.py --list时,它确认我定义的组不在那里。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-07 06:42:10

当然,如果你在一个问题上挣扎了一个小时,你将一事无成。但是把它发布到StackOverflow上,你会在5分钟内弄清楚。

最后,如果你想让它遵守groups,你必须传递包含groupsec2.pyec2.ini的整个文件夹-否则它会忽略它们。

所以正确的调用是:

代码语言:javascript
复制
$>ansible -i inventory/stage stage -m ping --private-key ~/.ssh/foo.pem

而不是:

代码语言:javascript
复制
$>ansible -i inventory/stage/ec2.py stage -m ping --private-key ~/.ssh/foo.pem
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52212922

复制
相关文章

相似问题

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