Ich versuche stop/start
die bestimmte group
der Instanzen, die in der hosts
Datei unter der Gruppe [target]
aufgeführt sind.
Das folgende Playbook funktioniert gut, um die Instanzen zu stoppen.
Aber wenn ich versuche, diese Instanzen zu starten, funktioniert es nicht, da die ec2_facts
nicht in der Lage ist, ssh
in die Instanzen (da sie jetzt gestoppt sind) und die instance-ids
Ich habe bereits die Dokumentation gesehen, die dynamic inventory
file für Hosts verwendet und die Methode, die instance-ids
hart zu codieren. Ich möchte die Instanzen starten, deren IPs
in der target
Gruppe von hosts
Datei aufgeführt sind.
Ich habe die Lösung, im Folgenden ist ansible-task
, die für mich funktioniert hat.
Hier finden Sie den Blogbeitrag zum Start / stop ec2 Instanzen mit ansible
Sie haben 2 Optionen:
Option 1
Verwenden Sie AWS CLI, um die Instanz-ID einer gestoppten Instanz anhand ihrer IP oder ihres Namens abzufragen. Um beispielsweise die Instanz-ID für einen bestimmten Instanznamen abzufragen:
%Vor%Option 2
Aktualisieren Sie auf Version 2.0 (Over the Hills und Far Away) und verwenden Sie das neue Modul ec2_remote_facts
%Vor%Sie sollten gather_facts: False hinzufügen, um zu verhindern, dass Ansible versucht, SSH in die Hosts, da sie nicht laufen:
%Vor%Wenn Sie Fakten sammeln müssen, nachdem die Instanzen gestartet wurden, können Sie das Setup -Modul explizit verwenden Fakten sammeln, nachdem sie hochgefahren sind.
Bearbeiten: Ich habe gerade festgestellt, dass Sie versuchen, auf die Datei ansible_ec2_instance_id zuzugreifen, die Sie nicht erhalten können, weil die Instanz inaktiv ist. Vielleicht möchten Sie sich das benutzerdefinierte Modul namens ec2_lookup ansehen, mit dem Sie suchen können Abrufen von AWS-Instanz-IDs, auch wenn die Instanzen inaktiv sind. Mit dieser können Sie eine Liste der Instanzen erhalten, die Sie interessiert und dann starten Sie sie.
Tags und Links amazon-web-services ansible ansible-playbook