一千萬個為什麽

搜索

Ansible動態庫存 - 使用下劃線而不是點來生成具有特定標簽下IP地址的庫存



我是Ansible的新手。當我使用 ec2.py 動態庫存生成庫存時,在劇本完成運行後,結果將顯示為具有下劃線而不是點的特定標記下的IP地址列表。 例如,我想運行具有特定標記的實例的劇本,我想知道其他人如何使用IP地址?

---
- hosts: tag_test_staging
  sudo: true
  tasks:
  - name: Make sure that we can connect to the machine
    ping:

    PLAY RECAP *********************************************************************
    10_80_20_47                : ok=0    changed=0    unreachable=1    failed=0 

對於私人地址,ec2.ini:

hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address

ec2.py的結果:

 "tag_test_staging": [
    "10_80_20_47"
  ],

對於Public Address,ec2.ini:

hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address

ec2.py的結果:

 "tag_test_staging": [
    "52_28_11_11"
  ],

轉載註明原文: Ansible動態庫存 - 使用下劃線而不是點來生成具有特定標簽下IP地址的庫存

一共有 2 個回答:

如果我註釋掉hostname_variable,它會起作用,因為它允許用ec2變量覆蓋inventory_name,而不是使用destination_variable

#hostname_variable = private_ip_address
#hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = private_ip_address

對於私人IP:

destination_variable = private_ip_address

我遇到過同樣的問題。我用下劃線取代ip地址而不是點。但我有好幾次註意到,更改ini文件並重新運行ec2.py不會立即返回正確的信息。一旦我更改為private_ip_address並且它一直返回private_dns_name。這一次,在更改為private_ip_address並重新運行多次後 - 嘗試並嘗試並嘗試它 - 在大約20分鐘後,它突然開始使用點而不是下劃線返回IP地址!我不知道。奇怪的AF,對吧?