Può Ansible creare istanze EC2?

Può Ansible creare istanze EC2?
È probabile che, se stai guardando questo tutorial, non hai bisogno di un'introduzione ad Ansible. Tuttavia, non fa male fare un rapido riepilogo.

Ansible è lo strumento di gestione della configurazione più popolare e probabilmente potente. È costruito per facilitare la gestione e la configurazione di host remoti utilizzando una serie di comandi definiti come attività.

Funziona utilizzando moduli sviluppati per attività specifiche come la gestione degli utenti, la gestione dei file, l'installazione e la rimozione di pacchetti software e molti altri.

Questa guida utilizzerà il modulo AWS Ansible per fornire e gestire un'istanza EC2. Inizieremo con le basi della creazione di un account AWS, installando Ansible e infine coprire come lavorare con il modulo ANSIBE AWS.

Cos'è un'istanza EC2?

La prima domanda da affrontare è: cos'è un EC2? Se sei nuovo nel cloud computing e AWS, questo può sembrare nuovo per te.

Amazon Elastic Compute Cloud o Amazon EC2 in breve, è un servizio fornito da Amazon Web Services (AWS) per consentire di creare e gestire le istanze del server sul cloud AWS.

La possibilità di girare server remoti configurati con funzionalità come CPU, memoria, disco, reti, sistema operativo e altro ancora con pochi clic è molto utile. Rimuove la necessità di investire in hardware ed elimina la preoccupazione di cablaggio dei dispositivi.

Le istanze di Amazon EC2 sono uno dei blocchi più fondamentali del cloud computing AWS.

Non ci immergeremo in profondità nel modo in cui funziona o nei modelli di prezzi e configurazione per AWS. Controlla il sito AWS per saperne di più.

Configurazione dell'ambiente

Il primo passo è impostare i nostri ambienti. Avremo bisogno di un account AWS, Ansible e Python per questa guida.

Ti consigliamo di utilizzare l'ultima versione di Ansible e Python.

Installa Ansible

Questo tutorial mostrerà l'installazione e la configurazione di Ansible su un sistema basato su Debian. Controlla i nostri altri tutorial per imparare come installarlo su altre distribuzioni.

Apri il terminale e modifica i repository del software.

sudo vim/etc/apt/fonti.elenco

Aggiungi la seguente voce al file:

deb http: // ppa.trampolino di lancio.Net/Ansible/Ansible/Ubuntu Focal Main

Quindi, eseguire i comandi come mostrato di seguito:

sudo apt-get installa gnupg
sudo apt-key adv-Keyserver Keyserver.Ubuntu.com--recv-keys 93c4a3fd7bb9c367
Sudo Apt-get Aggiornamento
sudo apt-get installa ansible

Una volta installato Ansible, possiamo impostare e configurare Python.

Installa Python3, Python3-PIP

Per installare Python3 e PIP su Debian 11, eseguire i comandi come mostrato:

Sudo Apt-get Aggiornamento
sudo apt-get installa python3.9 Python3 -pip -y

I comandi sopra installeranno Python versione 3.9 e il PIP3 sul tuo sistema.

Installa Boto

Il prossimo passo è installare Boto. Boto è un potente pacchetto Python che fornisce un'interfaccia per interagire con i servizi AWS utilizzando Python.

Per installare l'ultima versione del pacchetto Boto utilizzando PIP come mostrato nel comando seguente:

sudo pip3 installa boto3

Una volta che tutti gli strumenti e i pacchetti sono stati installati correttamente, possiamo creare playbook Ansible per inizializzare un'istanza EC2.

Crea playbook Ansible EC2

Apri il terminale e crea un playbook Ansible che termina con a .Estensione YML. Modifica il file con il tuo editor di testo preferito e aggiungi il playbook come mostrato di seguito:

---
- Nome: Ansible Crea istanza EC2
Host: localhost
Gather_Facts: false
compiti:
- Nome: fornitura di un'istanza EC2
EC2:
Regione: US-East-2
Key-Name: Ansible-EC2-ssh-key
Instance_Type: T2.Micro
Immagine: AM1-123456
Aspetta: sì
Conteggio: 1
Gruppo: Sample_Servers
ASSEGNA_PUBLIC_IP: Sì
Registro: Amazon_EC2
delegate_to: localhost

Crea una coppia di chiavi SSH

Una volta impostato il playbook, crea una coppia di chiavi SSH per accedere all'istanza EC2 una volta fornito. Assicurati di creare una chiave con un nome simile a quello definito nel parametro del nome chiave nel playbook sopra.

ssh -keygen -t rsa -b 4096 -f ~/.ssh/ansible-ec2-ssh-key

Aggiunta di accesso AWS e chiave segreta

Il prossimo passo è aggiungere le nostre credenziali AWS al nostro playbook. Per semplicità, aggiungeremo le credenziali al playbook in formato semplice.

NOTA: non esporre il tuo accesso AWS e la chiave segreta all'interno di un playbook nella vita reale. Prendi in considerazione l'utilizzo di variabili di ambiente o strumenti come Ansible Vault.

---
- Nome: Ansible Crea istanza EC2
Host: localhost
Gather_Facts: false
compiti:
- Nome: fornitura di un'istanza EC2
EC2:
Regione: US-East-2
Key-Name: Ansible-EC2-ssh-key
Instance_Type: T2.Micro
Immagine: AM1-123456
Aspetta: sì
Conteggio: 1The
Gruppo: Sample_Servers
ASSEGNA_PUBLIC_IP: Sì
VPC_SUBNET_ID: impostazione predefinita
AWS_ACCESS_KEY: ************* XXXX
AWS_SECRET_KEY: ***************
Registro: Amazon_EC2
delegate_to: localhost

Quanto sopra mostra il nuovo playbook con le credenziali AWS esposte. Evita questo!!

Una volta che hai il playbook tutto configurato, eseguilo usando il comando:

Ansible-Playbook Create-EC2.YML

Il comando sopra dovrebbe eseguire il playbook sopra e creare un'istanza EC2.

Comprensione del playbook

Comprendiamo ora il playbook fornito negli esempi sopra. Nota, ci concentreremo solo sulla parte EC2 del playbook.

  1. Regione: questo parametro definisce la regione AWS durante la creazione dell'istanza. È possibile controllare le regioni disponibili da utilizzare nella risorsa seguente.
  2. Il nome chiave definisce la coppia di tasti SSH da utilizzare sull'istanza creata. Assicurarsi che la chiave esista già.
  3. Instance_Type - Definisce il tipo di istanza da creare. Controlla la seguente risorsa per saperne di più.
  4. Immagine: imposta l'ID AMI da utilizzare durante la creazione dell'istanza.
  5. Aspetta: un valore booleano per determinare se Ansible dovrebbe attendere che l'istanza sia nello stato desiderato prima del ritorno.
  6. Conteggio: il numero totale di istanze da creare.
  7. Gruppo: imposta i gruppi di sicurezza per l'istanza EC2.
  8. ASSACTION_PUBLIC_IP - Valore booleano da definire se alle istanze dovrebbe essere assegnato un indirizzo IP pubblico all'interno del VPC.
  9. VPC_SUBNET_ID - Definisce l'ID sottorete in base al quale dovrebbe essere lanciata l'istanza EC2.

Usando il modulo AWS Ansible, è possibile utilizzare gli argomenti sopra per creare un'istanza EC2.

Chiusura

Questa guida fornisce un tutorial sulla creazione di un'istanza Amazon EC2 utilizzando il modulo ANSIBE AWS.