簡體   English   中英

Ansible ec2動態廣告資源存在問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM