![](/img/trans.png)
[英]Ansible dynamic inventory: Authentication error retrieving ec2 inventory
[英]Trouble with Ansible ec2 dynamic inventory
我正在使用ansible在ec2中配置和部署多台服務器。 由於這些服務器經常更改,因此我想使用動態清單。 我已經在jenkins服務器中設置了ec2.py和ec2.ini(這是運行ansible腳本的位置),但是在運行劇本時遇到了問題:
ERROR! Specified --limit does not match any hosts
這顯然意味着我的主機沒有被正確選擇。 當我跑步時:
./ec2.py --list >> aws_example.json
一切都在aws_example.json
看起來不錯。
我正在嘗試根據兩個標簽(名稱和環境)選擇服務器。 例如,我有一台服務器,其“名稱”標簽為“ api”,而“環境”標簽為“生產”。
我已經這樣設置了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
這些配置均無效。 我也找不到太多有關這些設置的文檔,所以我不確定如何正確配置它。 誰能指出我正確的方向?
所以問題是我如何在劇本中表示主機名。 設置主機名變量是正確的做法:
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
確保更改特殊字符,例如.
或者-
到_
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.