首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ec2动态库存中的问题

ec2动态库存中的问题
EN

Stack Overflow用户
提问于 2016-05-26 15:49:38
回答 1查看 1.7K关注 0票数 0

我正在使用ansible在ec2中配置和部署几个服务器。由于这些服务器经常更改,所以我想使用动态库存。我已经在jenkins服务器中设置了ec2.py和ec2.ini (这是运行ansible脚本的地方),但在运行剧本时遇到了一个问题:

代码语言:javascript
复制
ERROR! Specified --limit does not match any hosts

这显然意味着我的主机没有被正确选择。当我跑步时:

代码语言:javascript
复制
./ec2.py --list >> aws_example.json

aws_example.json中,一切看起来都很好。

我试图根据两个标记来选择服务器,名称和环境。例如,我有一个服务器,它的“名称”标记是“api”,“环境”标记是“生产”。

我已经设置了这样的destination_format_tags

代码语言:javascript
复制
destination_format_tags = Name,environment

并按以下方式运行ansible:

代码语言:javascript
复制
ansible-playbook site.yml -i ec2.py -l api

我也尝试过更改hostname_variable

代码语言:javascript
复制
hostname_variable = tag_Name.tag_environment

然后像这样运行命令:

代码语言:javascript
复制
ansible-playbook site.yml -i ec2.py -l api.production

此外,我还尝试在hostname_variable中只使用一个标记

代码语言:javascript
复制
hostname_variable = tag_Name

然后像这样运行命令:

代码语言:javascript
复制
ansible-playbook site.yml -i ec2.py -l api

这些配置都不起作用。我也找不到很多关于这些设置的文档,所以我不知道如何正确配置它。谁能给我指明正确的方向?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-27 17:38:01

所以问题是我是如何在我的剧本中代表我的主机名的。设置主机名变量是正确的做法:

代码语言:javascript
复制
hostname_variable = tag_Name

下面是如何在剧本中表示它:

代码语言:javascript
复制
- name: configure and deploy api servers
  hosts: tag_Name_api
  remote_user: ec2-user
  sudo: true

  roles:
  - java
  - nginx
  - api

此外,它还需要如下所示:

代码语言:javascript
复制
ansible-playbook site.yml -i ec2.py -l tag_Name_api

确保将特殊字符(如.- )更改为_

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

https://stackoverflow.com/questions/37465626

复制
相关文章

相似问题

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