【问题标题】:how to get metadata of aws instance created in ansible?如何获取在ansible中创建的aws实例的元数据?
【发布时间】:2017-11-24 05:50:58
【问题描述】:

我正在创建一个 AWS 实例,需要在同一个游戏中获取主机名、IP 地址。如何获取元数据。我尝试了“ec2_instance_facts”、“ec2_metadata_facts”,这些都是在给主机运行 ansible playbook 而不是刚刚创建的。

我尝试过使用不同的模块'

- name: Debug
  ec2_metadata_facts:
- debug: var=ansible_ec2_hostname
- debug: var=ansible_ec2_public_ipv4
- debug: var=ansible_ec2_public_hostname


- ec2_instance_facts:
   region: "ap-southeast-2"
   filters:
      "tag:Name": A01NANISIM20

  register: ec2_metadata

这些 sn-ps 没有给出创建实例的详细信息,而是给出了运行 playbook 的实例的详细信息。

【问题讨论】:

  • 感谢您的信息!那么如何从 ec2 实例外部获取元数据呢?我是个新手!

标签: amazon-ec2 ansible metadata


【解决方案1】:
- ec2_instance_facts:
   region: "ap-southeast-2"
   filters:
      "tag:Name": A01NANISIM04

  register: ec2_metadata

- debug: msg="{{ ec2_metadata.instances }}"

- debug: msg="{{ ec2_metadata.instances[0].public_ip_address }}"

我终于想通了。我没有意识到 ansible 是技术的融合。刚刚明白输出是 JSON 数据,我只需要形成适当的标签。

【讨论】:

    【解决方案2】:

    我一直在使用基于区域或可用区的 ohai_ec2 事实运行任务,因为 ec2_instance_facts 因 boto3 错误而对我来说失败

    使用https://stackoverflow.com/a/51308298/4389552 让我看看我可以使用哪些事实

    例如

     {{ ohai_ec2.region }}
    
    # find the region
      - name: get the region and availability zone
        debug:
          msg: "Region is {{ ohai_ec2.region }} and zone is {{ ohai_ec2.availability_zone }}"
    
    

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 2022-11-06
      • 2016-12-07
      • 2017-11-07
      • 2019-04-06
      相关资源
      最近更新 更多