Ansible ec2 动态库存的问题
Trouble with Ansible ec2 dynamic inventory
我正在使用 ansible 在 ec2 中配置和部署多个服务器。由于这些服务器经常变化,我想使用动态库存。我已经在我的 jenkins 服务器中设置了 ec2.py 和 ec2.ini(这是 ansible 脚本 运行 的地方)但是当我 运行 时我遇到了一个问题 运行 ] 剧本:
ERROR! Specified --limit does not match any hosts
这显然意味着我的主机未被正确 selected。当我 运行:
./ec2.py --list >> aws_example.json
aws_example.json
一切看起来都不错。
我正在尝试 select 基于两个标签(名称和环境)的服务器。例如,我有一个 'Name' 标签为 'api' 和 'environment' 标签为 'production'.
的服务器
我已经像这样设置了 destination_format_tags
:
destination_format_tags = Name,environment
和运行 ansible如下:
ansible-playbook site.yml -i ec2.py -l api
我也试过改变 hostname_variable
:
hostname_variable = tag_Name.tag_environment
和运行命令如下:
ansible-playbook site.yml -i ec2.py -l api.production
另外,我也试过只使用一个标签 hostname_variable
:
hostname_variable = tag_Name
和运行命令如下:
ansible-playbook site.yml -i ec2.py -l api
None 这些配置有效。我也找不到很多关于这些设置的文档,所以我不确定如何正确配置它。谁能指出我正确的方向?
所以问题是我如何在我的剧本中表示我的主机名。设置主机名变量是正确的做法:
hostname_variable = tag_Name
下面是如何在剧本中表示它:
- name: configure and deploy api servers
hosts: tag_Name_api
remote_user: ec2-user
sudo: true
roles:
- java
- nginx
- api
此外,它需要这样调用:
ansible-playbook site.yml -i ec2.py -l tag_Name_api
确保将 .
或 -
等特殊字符更改为 _
。
我正在使用 ansible 在 ec2 中配置和部署多个服务器。由于这些服务器经常变化,我想使用动态库存。我已经在我的 jenkins 服务器中设置了 ec2.py 和 ec2.ini(这是 ansible 脚本 运行 的地方)但是当我 运行 时我遇到了一个问题 运行 ] 剧本:
ERROR! Specified --limit does not match any hosts
这显然意味着我的主机未被正确 selected。当我 运行:
./ec2.py --list >> aws_example.json
aws_example.json
一切看起来都不错。
我正在尝试 select 基于两个标签(名称和环境)的服务器。例如,我有一个 'Name' 标签为 'api' 和 'environment' 标签为 'production'.
的服务器我已经像这样设置了 destination_format_tags
:
destination_format_tags = Name,environment
和运行 ansible如下:
ansible-playbook site.yml -i ec2.py -l api
我也试过改变 hostname_variable
:
hostname_variable = tag_Name.tag_environment
和运行命令如下:
ansible-playbook site.yml -i ec2.py -l api.production
另外,我也试过只使用一个标签 hostname_variable
:
hostname_variable = tag_Name
和运行命令如下:
ansible-playbook site.yml -i ec2.py -l api
None 这些配置有效。我也找不到很多关于这些设置的文档,所以我不确定如何正确配置它。谁能指出我正确的方向?
所以问题是我如何在我的剧本中表示我的主机名。设置主机名变量是正确的做法:
hostname_variable = tag_Name
下面是如何在剧本中表示它:
- name: configure and deploy api servers
hosts: tag_Name_api
remote_user: ec2-user
sudo: true
roles:
- java
- nginx
- api
此外,它需要这样调用:
ansible-playbook site.yml -i ec2.py -l tag_Name_api
确保将 .
或 -
等特殊字符更改为 _
。