2016-07-12 4 views
0

Ich benutze ansible cloudformation um Stack mit 20 Instanzen zu erstellen. Jetzt im ansible Ausgang kann ich nur die Instanz-IDs sehen.Wie kann ich ec2 instance ip von instance id in ansible

Jetzt, nachdem der Stapel erstellt wurde, möchte ich mit ihnen verbinden und konfigurieren, aber ich bin mir nicht sicher, wie thos ips oder hostnames von Instanz-ID erhalten können.

Cloudformation Ausgang ist wie dieser

{ 
     "last_updated_time": null, 
     "logical_resource_id": "test2", 
     "physical_resource_id": "i-24tf97306", 
     "resource_type": "AWS::EC2::Instance", 
     "status": "CREATE_COMPLETE", 
     "status_reason": null 
    }, 
    { 
     "last_updated_time": null, 
     "logical_resource_id": "test1", 
     "physical_resource_id": "i-6533184348", 
     "resource_type": "AWS::EC2::Instance", 
     "status": "CREATE_COMPLETE", 
     "status_reason": null 
    } 

Antwort

2

ec2_remote_facts Modul ist Ihr Freund hier.

+0

In der aktuellen Version ec2_remote_facts Öffentlichkeit nicht zur Verfügung stellt, hat es https: //github.com/ansible/ansible-modules-extras/pull/1509 – user3098466

+0

ja , können Sie Fix lokal anwenden oder 'public_dns_name' verwenden –

0

Sie instance meta data abrufen können, wenn ansible auf der Instanz läuft z.B.

curl http://169.254.169.254/latest/meta-data/public-hostname 
ec2-aa-bb-cc-ddd.ap-southeast-2.compute.amazonaws.com 

wo aa-bb-cc-ddd Ihre IP darstellt und die vollständige Zeichenfolge repräsentiert den Hostnamen.

Sie verwenden Ansible, damit Sie die get_url-Baugruppe von Ansible verwenden können: http://docs.ansible.com/ansible/get_url_module.html, um die HTTP-Anforderung auszuführen.

+0

aber das ist nur von innen zugänglich Instanz nicht aus ansible Host – Karl

Verwandte Themen