Quando si gestiscono istanze esistenti di Amazon Web Service (AWS) EC2, fare clic sulla Console di Gestione funziona bene. Ma man mano che l’infrastruttura cresce, la gestione delle istanze richiede molto tempo e diventa complessa. Esiste un modo migliore per gestire le istanze? Sì! Il modulo AWS Ansible EC2 può aiutarti.
In questo tutorial, imparerai come il modulo Ansible AWS EC2 ti offre un controllo potente per gestire le istanze AWS EC2 seguendo un approccio basato su esempi.
Continua a leggere e inizia!
Prerequisiti
Questo tutorial comprende istruzioni passo-passo. Se desideri seguirla, assicurati di avere quanto segue:
- Un host controller Ansible – Questo tutorial utilizza Ansible v2.11.7 su una macchina Ubuntu 20.04.3 LTS.
- A remote Linux computer to test out the amazon.aws.ec2_instance Ansible module. This tutorial uses Ubuntu 20.04.3 LTS as the remote node.
- Un account AWS.
- Un utente IAM AWS, una chiave di accesso ID e una chiave segreta configurata sulla tua macchina locale con accesso per creare e gestire istanze EC2. Questo tutorial userà un utente IAM chiamato ec2user.
Assicurati che l’utente IAM sia configurato per l’accesso programmato e che gli venga assegnata la politica esistente AmazonEC2FullAccess.
- Un file di inventario e uno o più host sono configurati per eseguire comandi e playbooks di Ansible. Il computer Linux remoto è chiamato myserver, e questo tutorial utilizza un gruppo di inventario chiamato web.
- Python v3.6 o successivo installato sull’host del controller di Ansible e sulla macchina remota. Questo tutorial utilizza Python v3.8.10 su una macchina Ubuntu.
- Python modules boto3 superiori a 1.15.0 e botocore superiori a 1.18.0 devono essere installati sull’host del controller Ansible e sulla macchina del nodo remoto.
Creare o riavviare un’istanza EC2 con comandi ad hoc
Se prevedi di creare o riavviare una singola istanza EC2 su un account AWS, eseguire comandi ad hoc sarà sufficiente. I comandi ad hoc sono un modo rapido ed efficiente per eseguire un singolo comando per creare un’istanza EC2 o modificare il tipo di istanza EC2 di AWS.
Accedi al tuo controller Ansible ed esegui il seguente comando ansible
per connetterti (-m amazon.aws.ec2_instance
) all’host (web
).
Il comando passa un argomento (-a
) che dice ad Ansible di riavviare l’istanza EC2 di AWS con instance_tags=Name=Tag1
) nella regione us-east-2
. Per autenticare la connessione all’account AWS, aggiungi i dettagli di aws_access_key
e aws_secret_key
nel comando ad hoc.
Il tutorial esegue tutte le azioni nella regione us-east-2, ma puoi eseguire le stesse azioni in qualsiasi regione AWS a tua scelta.
Una volta completato il comando, vedrai un messaggio CHANGED, come mostrato di seguito, che conferma che Ansible ha riavviato con successo l’istanza EC2 di AWS.

Avvio di un’istanza EC2 con Ansible Playbook
Hai appena imparato come eseguire un comando ad hoc di Ansible, che è ottimo per un’azione singola! Ma forse hai bisogno di eseguire più compiti. In tal caso, crea un playbook di Ansible che avvierà un’istanza EC2 per eseguire più compiti.
1. Apri il terminale nel tuo host controller di Ansible, quindi esegui i seguenti comandi per creare una directory chiamata ~/ansible_aws_ec2_module
e passa a quella directory.
Questa directory conterrà il playbook e tutti i file di configurazione richiesti che utilizzerai per invocare il modulo Ansible AWS EC2.
2. Successivamente, apri il tuo editor di testo preferito, crea un file chiamato main.yml nella directory ~/ansible_aws_ec2_module. Popola il file main.yml con i seguenti contenuti del playbook YAML.
Il playbook qui sotto contiene il compito che avvia un’istanza con un indirizzo IP pubblico all’interno di una particolare VPC in un account AWS.
Da questo punto in poi nel tutorial, sostituisci i valori
aws_access_key
,aws_secret_key
con i tuoi.
3. Esegui il comando di seguito per invocare il playbook (main.yml
). Il playbook esegue quindi le attività per creare una nuova istanza nella regione us-east-2
con tipo di istanza t2.micro.
Di seguito, puoi vedere che alcune attività mostrano uno stato changed, il che indica che Ansible ha creato correttamente l’istanza e ha modificato lo stato dell’attività per eseguire il comando. In contrasto, vedi uno stato ok poiché alcune attività non richiedono modifiche.

4. Ora, apri il tuo browser web preferito e accedi alla Console di Gestione AWS.
5. Infine, fai clic sulla barra di ricerca nella parte superiore della console, cerca EC2 e fai clic sull’elemento di menu EC2. In questo modo il tuo browser verrà reindirizzato alla pagina EC2.

Sulla pagina EC2, vedrai la tua nuova istanza creata, come mostrato di seguito.

Arresto di più istanze EC2 AWS
Forse alcune istanze AWS EC2 non servono più. In tal caso, puoi interrompere o terminare più istanze eseguendo un playbook Ansible. Specifica gli ID dell’istanza e dichiara i valori in un compito per impostare il comportamento del modulo AWS EC2 di Ansible nello stop delle istanze.
1. Crea un playbook Ansible chiamato stop.yml e copia/incolla il codice qui sotto nel playbook.
Il playbook sottostante interrompe due istanze (i-0d8c7eb4eb2c643a1 e i-0dbc17a67c0f7577c).
Se preferisci terminare le istanze anziché interromperle, cambia il valore dello stato in
assente
.
2. Ora esegui il comando sottostante per eseguire il playbook (stop.yml
), che interromperà le istanze specificate nel playbook. ansible-playbook stop.yml

3. Infine, vai alle tue istanze AWS nel browser web e vedrai due istanze interrotte con successo, come mostrato di seguito.

Creazione di un’istanza con etichetta, volume e monitoraggio Cloud Watch.
Forse è necessario dotare la tua istanza con componenti più avanzati come l’etichettatura, il monitoraggio con allarmi CloudWatch, e la creazione di un volume per scopi di archiviazione. In tal caso, l’utilizzo del modulo Ansible EC2 AWS in un playbook farà al caso tuo.
Le etichette sono un ottimo modo per organizzare le risorse AWS e calcolare efficientemente i costi delle risorse nella Console di Gestione AWS.
1. Crea un nuovo playbook Ansible chiamato advanced.yml e popolalo con il codice qui sotto.
Il playbook seguente avvierà un’istanza AWS EC2 con (volumi
—> /dev/sdb
, monitoraggio e etichetta dell’istanza con Instance1
).
2. Ora esegui il comando seguente per eseguire il playbook (advanced.yml
), che avvierà un’istanza AWS EC2 con etichetta, volume e monitoraggio CloudWatch. ansible-playbook advanced.yml

3. Passa alla scheda Archiviazione dell’istanza che desideri verificare nella console AWS EC2. In Dispositivi di blocco, clicca su un ID del volume dalla lista per visualizzare le informazioni dettagliate dell’istanza.

4. Infine, clicca sulla scheda Tag nella pagina delle informazioni di riepilogo dell’istanza. Vedrai il tag che hai impostato per l’istanza nel playbook (passo uno), come quello qui sotto.

Conclusione
In questo tutorial, hai sfruttato il modulo AWS EC2 di Ansible per gestire le istanze AWS EC2 con un singolo comando. Hai anche imparato come personalizzare le istanze AWS EC2, come riavviarle, terminarle, aggiungere tag, e così via.
Ora che hai una conoscenza approfondita del modulo AWS EC2 di Ansible, sei disposto a integrare il modulo AWS EC2 di Ansible nella tua routine di gestione delle istanze? Forse vorrai automatizzare il compito aggiungendo un lavoro cron?