Ricerca nel sito web

Come utilizzare l'interfaccia a riga di comando (CLI) di Terraform su Ubuntu


Su questa pagina

  1. Prerequisito
  2. Clonazione del codice principale
  3. Utilizzo dell'interfaccia a riga di comando (CLI) di Terraform per creare la tua prima infrastruttura
  4. Conclusione

Terraform è un framework per la creazione e la configurazione dell'infrastruttura come codice, con un'interfaccia a riga di comando e un linguaggio DSL. Terraform è in grado di gestire provider di servizi esistenti e popolari, nonché soluzioni interne personalizzate per creare e configurare data center distribuiti completi.

L'interfaccia a riga di comando (CLI) di Terraform ti consente di utilizzare Terraform senza dover scrivere codice o file di configurazione. È un modo ideale per prototipare le modifiche all'infrastruttura con il tuo team prima di scrivere il codice, distribuire le configurazioni localmente sulla tua macchina o spingerle in produzione. La CLI si basa sul formato di file terraformspec creato a tale scopo da terze parti come HashiCorp Nomad CLI Toolkit.

Il toolkit della CLI implementa un DSL JavaScript per definire l'infrastruttura e utilizza lo stesso formato di configurazione sia in Terraform che nella CLI. Il toolkit CLI fornisce anche comandi per generare modelli di infrastruttura, comporre componenti dell'infrastruttura in soluzioni complete e gestire le modifiche. L'intero flusso di lavoro Terraform è guidato da funzioni stateless definite nel codice ed eseguite da Terraform ogni volta che apporti una modifica. Ciò ti consente di pensare alla tua infrastruttura come a un singolo progetto che può essere facilmente modificato in fase di esecuzione senza ricaricare la configurazione o modificare la base di codice.

Numerosi professionisti IT e aziende utilizzano l'interfaccia della riga di comando di Terraform per gestire e persino creare nuove infrastrutture o nuove infrastrutture cloud. L'interfaccia della riga di comando terraform può fornire un metodo più robusto per automatizzare le modifiche che richiederebbero troppo tempo per essere eseguite manualmente. È un potente strumento per la gestione dell'infrastruttura.

È facile capire perché Terraform è una delle soluzioni di provisioning cloud open source più popolari al mondo. È uno strumento utilizzato da persone Linux come te!

All'interno troverai spiegazioni complete ed esempi dei comandi CLI di Terraform più comuni che sono stati appositamente selezionati per darti un'esperienza pratica con le funzionalità più potenti di Terraform.

Prerequisito

  • Per seguire questo articolo, dovresti avere:
  • Una certa conoscenza di base delle caratteristiche e delle funzioni di Terraform.
  • Una macchina Linux. Questa demo utilizza Ubuntu 20.04 LTS, ma qualsiasi distribuzione Linux funzionerà.
  • Terraform e docker installati sulla macchina.

Clonazione del codice principale

Ora che ti sei preso cura dei prerequisiti, sei pronto per iniziare a clonare il codice principale su cui utilizzare l'interfaccia a riga di comando di Terraform.

1. Esegui il comando apt install qui sotto per installare git sul tuo sistema. Git è un sistema di controllo di revisione distribuito open source progettato per gestire tutto, dai progetti piccoli a quelli molto grandi con velocità ed efficienza. Utilizzerai git per clonare il modello di progetto dell'interfaccia della riga di comando terraform da github.com. Quindi verificherai la versione corretta della riga di comando terraform per questa demo.

sudo apt install git -y

2. Eseguire il comando git clone di seguito per clonare il modello di progetto della riga di comando terraform nella directory corrente.

git clone https://github.com/howtoforge-com/terraform-cli.git

3. Spostati nella directory terraform-cli appena clonata e apri il file main.tf con il tuo editor di testo preferito (vim, emacs, nano, ecc.). Un file main.tf è il punto di ingresso dei tuoi progetti all'interfaccia della riga di comando terraform (Cli). Quando esegui il comando terraform, utilizza il file main.tf come input per le istruzioni su come costruire la tua infrastruttura.

cd terraform-cli && sudo nano main.tf

Otterrai l'output di followign.

  • La sezione terraform {  } del file main.tf non fa altro che impostare il provider docker come required_provider. Affinché Terraform possa gestire la tua infrastruttura Docker, devi configurare il provider docker.

  • Il blocco di codice della risorsa \docker_image\ \nginx\ { dimostra l'uso della CLI terraform creando una nuova risorsa chiamata docker_image. La riga successiva usa la docker-image per creare una risorsa chiamata nginx. Puoi dedurre che questo verrà utilizzato per gestire il tuo contenitore Docker. La riga successiva imposta il nome dell'immagine docker come nginx:latest. Il keep_locally=false impedisce all'immagine di essere memorizzata nella cache localmente sul tuo computer ed è una buona idea per prevenire download duplicati.

  • La risorsa \docker_container\ \nginx\ { dimostra l'utilizzo della CLI terraform creando una nuova risorsa chiamata docker_container. La riga successiva usa docker_container per creare una risorsa chiamata nginx. Verrà utilizzato per gestire la mappatura delle porte dei container Docker. La riga successiva imposta il nome del tuo contenitore docker come tutorial e, infine, mostra come mappare la porta 8000 e la porta 80 sulla tua macchina host sul tuo contenitore docker utilizzando il blocco delle porte.

Utilizzo dell'interfaccia a riga di comando (CLI) di Terraform per creare la tua prima infrastruttura

Ora che hai clonato il modello di progetto terraform, puoi creare la tua prima infrastruttura. Utilizzerai l'interfaccia a riga di comando di Terraform per creare un'infrastruttura utilizzando il file main.tf dei tuoi progetti. Creerai un contenitore docker e mapperai una porta dal tuo computer host al contenitore docker.

1. Innanzitutto, esegui il comando terraform init per inizializzare la tua directory di lavoro. Il comando terraform init inizializza la tua directory di lavoro e scarica tutti i plug-in necessari a Terraform per gestire la tua infrastruttura. Una directory di lavoro è la directory in cui utilizzerai il comando terraform per gestire la tua infrastruttura. Una volta inizializzata, questa directory contiene un file main.tf e può contenere più file di supporto.

terraform init

Dopo aver eseguito correttamente il comando terraform init, riceverai il seguente output.

2. Successivamente, esegui il comando terraform fmt per formattare automaticamente il tuo file main.tf per la leggibilità e la coerenza. Il comando terraform fmt riformatterà il tuo file main.tf per leggibilità e coerenza. Questa è una buona pratica da seguire poiché renderà i tuoi file più facili da leggere per te e per gli altri.

terraform fmt

Se il comando terraform fmt ha modificato i tuoi filemain.tf  , stamperà il nome del file che ha riformattato. In questa demo, l'output è vuoto perché il file main.tf era già formattato secondo i gusti di Terraform, come mostrato di seguito.

3. Esegui il comando terraform validate per assicurarti che la tua infrastruttura venga creata come previsto. Il comando terraform validate è un controllo di sicurezza per verificare che la tua infrastruttura possa essere costruita come previsto.

terraform validate

Se non ci sono errori, riceverai un output simile al seguente, che indica che tutto è pronto per costruire la tua prima infrastruttura.

4. Esegui il comando terraform plan per vedere cosa farà Terraform per costruire l'infrastruttura. Il comando terraform plan è un'anteprima di ciò che Terraform intende costruire e non è lo stesso di terraform apply.

terraform plan

Il comando terraform plan restituisce la struttura seguente, mostrando che creerà un'istanza della risorsa docker_container denominata nginx e una risorsa docker_image denominata tutorial.

5. Eseguire il comando terraform apply per applicare le modifiche visualizzate in anteprima con terraform plan. Il comando terraform apply costruirà la tua infrastruttura. Il comando terraform apply creerà tutte le risorse descritte nel file di configurazione main.tf di Terraform.

Questo comando riutilizzerà la valutazione di variabili, vincoli e mappature dal comando terraform plan per produrre il piano più efficiente possibile. Eventuali opzioni aggiuntive specificate nella riga di comando con terraform apply verranno utilizzate durante l'esecuzione del comando apply. Immettere yes e premere Invio quando viene richiesto di immettere un valore.

terraform apply

Una volta che il comando terraform apply ha esito positivo, verrà visualizzato un messaggio che indica che l'infrastruttura è stata creata correttamente, come mostrato di seguito. Quando ciò accade, significa che la tua infrastruttura è stata creata come previsto ed è aggiornata con il tuo file di configurazione.

6. Eseguire il comando ls per elencare tutti i file nella directory di lavoro. Vedrai un nuovo file chiamato terraform.tfstate come mostrato di seguito. Viene creato un file con questo nome per tenere traccia delle modifiche alla tua infrastruttura. Il comando terraform plan memorizza le modifiche che verranno applicate durante l'esecuzione di terraform apply in un file intermedio denominato .tfstate. Il file di stato contiene lo stato completo dell'infrastruttura così come lo vede Terraform. Questo file è necessario per applicare qualsiasi configurazione e deve essere trasferito quando si apportano modifiche, anche se la destinazione si trova all'interno dello stesso provider.

ls

7. Il processo di costruzione è terminato. Esegui il comando terraform destroy per distruggere l'infrastruttura che hai appena creato. Inserisci yes e premi Invio quando ti viene chiesto di inserire un valore. Il comando terraform destroy eliminerà tutte le risorse create da questa demo. Il comando terraform destroy eliminerà tutte le risorse descritte nel file di configurazione main.tf di Terraform. Una volta che le risorse sono state distrutte, non possono essere recuperate.

È necessario rimuovere le risorse inutilizzate per tenere sotto controllo la configurazione di un ambiente. Non si tratta di coprire i fallimenti, si tratta di prevenire i fallimenti prevenendo l'accumulo di risorse in disuso.

 terraform destroy

Conclusione

In questo tutorial, hai imparato a utilizzare i concetti Terraform più comuni illustrati in un esempio per creare la tua prima infrastruttura. Hai imparato a utilizzare l'interfaccia a riga di comando di Terraform per creare un'infrastruttura utilizzando il file main.tf dei tuoi progetti. La CLI può essere utilizzata per pianificare, applicare e distruggere la tua infrastruttura.

Ora hai gli strumenti per costruire la tua infrastruttura. Puoi gestire facilmente un'ampia gamma di risorse, grazie al linguaggio di configurazione completo ed espressivo di Terraform.

Puoi sfruttare le tue nuove conoscenze nella gestione dell'infrastruttura, già in uso per container Docker, Kubernetes e OpenStack, per portare maggiore efficienza e coerenza alla tua pratica di infrastruttura come codice.