Ansible动态广告资源-使用下划线而不是点在特定标签下生成IP地址在下面的广告资源


11

我是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"
  ],

对于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"
  ],

为什么脚本给每个主机赋予的名称对非字母数字字符都带有下划线?
阿萨夫·拉维

这似乎是一个非常具体的以工具为中心的问题。有针对此的ServerFault,其在主题上有serverfault.com/help/on-topic。如果有的话,不确定此处的主题。
Evgeny

@Evgeny,不确定我明白你的意思,http://devops.stackexchange.com如果你不问问题又有什么意义呢?不是DevOps问题吗?
柏林

Answers:


5

如果我注释掉hostname_variable,它会起作用,因为它允许使用ec2变量来覆盖ventory_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

las,我看到的是相同的行为,并且注释掉hostname_variable并不能纠正它。
Todd Walton

但是......我现在有几次注意到,更改ini文件并重新运行ec2.py不会立即返回正确的信息。AF很奇怪,对不对?但是经过几次尝试之后,大约20分钟后,它突然开始返回带点而不是下划线的IP地址!我不知道。
Todd Walton

您知道我要提出条件怎么办吗?例如,vpc_destination_variable:“ {{如果ec2_platform =='windows',则为ip_address否则为private_ip_address}}”
Nimitack

0

我遇到过同样的问题。我用下划线而不是点来获取IP地址。但是我现在有几次注意到,更改ini文件并重新运行ec2.py不会立即返回正确的信息。一旦我更改为private_ip_address,并且一段时间后它一直返回private_dns_name。这次,在更改为private_ip_address并重新运行几次后-尝试并尝试并尝试-大约20分钟后,它突然开始返回带点而不是下划线的IP地址!我不知道。AF很奇怪,对不对?


听起来像是缓存中的“问题”。您是否尝试过更改ec2.ini中的'cache_max_age'参数?
马耳他

你可能是完全正确的。实际上,我今天只是在看那个。您可以运行“ ./ec2.py --refresh-cache”。
托德·沃尔顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.