Terraform

Come utilizzare Terraform con Google Cloud Platform?

Come utilizzare Terraform con Google Cloud Platform?
Terraform è uno strumento utilizzato per gestire l'infrastruttura come codici con facilità. È sviluppato da HashiCorp come progetto opensource per consentire agli sviluppatori cloud di gestire la propria infrastruttura in linguaggio di altissimo livello (HCL). Il più grande vantaggio di questo strumento è che astrae i principali servizi di infrastruttura come AWS, OpenStack, Vultr, Digital Ocean, Google Cloud e consente agli sviluppatori di unificare la loro configurazione in un unico formato standard. Oltre a ciò, l'automazione e l'esecuzione dettagliata sono possibili anche con Terraform. È disponibile su piattaforme Windows, Linux, MacOS e può essere utilizzato con qualsiasi piattaforma cloud principale con un livello moderato di conoscenza tecnica.

Questa guida mostra come utilizzare Terraform con la piattaforma Google Cloud. Questa guida presuppone che l'utente abbia un account nella piattaforma Google Cloud ed è pronto per l'uso, in caso contrario è possibile creare facilmente un account di prova gratuito per un anno. Tuttavia, Google Cloud richiede l'invio di un numero di carta di credito valido per accedere alla sua console; quindi assicurati che sia stato risolto prima di procedere.

Requisiti e condizioni

La piattaforma Google Cloud è costituita da un gran numero di servizi; quindi è difficile trattarli tutti in un'unica guida e, pertanto, questa guida copre solo la sezione delle istanze di Google VM. Dimostra come installare un server web Nginx in un'istanza VM Ubuntu nell'infrastruttura Google Cloud.

Poiché la guida riguarda la terraform, ovviamente deve essere installata nel sistema. Inoltre, è necessario generare una chiave SSH per accedere all'istanza VM.

Come installare Terraform su Ubuntu

Terraform può essere installato in due modi diversi. Il primo metodo è il modo manuale, che richiede all'utente di scaricarlo e installarlo nel sistema, il modo alternativo e più consigliato è il modo automatico, che scarica e installa il terraform nel sistema con un paio di righe di codice. Segui i seguenti comandi per farlo accadere.

  1. Installa il pacchetto unzip nel sistema per estrarre il pacchetto terraform una volta scaricato.
sudo apt-get install unzip
  1. Scarica e installa terraform dal link indicato. Nota che nel momento in cui l'articolo viene scritto l'ultima versione di terraform è 0.11.10. In futuro la versione potrebbe essere un'altra. Quindi presta sempre attenzione al loro sito Web ufficiale per ottenere informazioni sull'ultimo pacchetto terraform.
wget https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.cerniera lampo
  1. Estrai il terraform nella directory attualmente attiva. Per impostazione predefinita, è la directory Home in Ubuntu.
decomprimi terraform_0.11.10_linux_amd64.cerniera lampo
  1. Sposta il terraform nella cartella binaria. Terraform non ha un file di installazione; quindi il suo file binario deve essere inserito manualmente nel file bin.
sudo mv terraform /usr/local/bin/
  1. Usa il seguente comando per accedere a terraform dalla riga di comando senza specificare la sua directory.
terraform --version

Come generare la tua chiave SSH

Dopo aver installato terraform, il prossimo passo importante è generare la propria coppia di chiavi pubblica/privata SSH per comunicare con l'istanza VM che sta per essere creata. La coppia di chiavi SSH fornisce una forte sicurezza rispetto alla tradizionale autenticazione password/nome utente; quindi seguire questa opzione è fortemente raccomandato anche se non è obbligatorio.

1. Sulla shell di Ubuntu, digita il seguente comando per generare la coppia di chiavi SSH.

ssh-keygen

2. All'inizio, chiede un nome per la coppia di chiavi, quindi la passphrase per la chiave ssh. La chiave pubblica viene creata come .pub, mentre la chiave privata viene creata come . Entrambe le chiavi vengono create nella directory attualmente attiva. Mantieni la chiave privata al sicuro in un luogo sicuro poiché è importante accedere all'istanza VM.

Configura Google Cloud con Terraform

Una volta completati i suddetti due segmenti, vai avanti e crea un account di prova gratuito in Google Cloud. Poiché la creazione di un account è un processo semplice, non è descritto qui. Dopo aver ottenuto l'accesso alla console di Google Cloud, segui i seguenti passaggi per configurare Google Cloud con terraform.

  1. Vai al seguente URL.
    https://console.nube.Google.come
  1. Fare clic sul pulsante "I miei progetti" nell'angolo in alto a sinistra della console.
  2. Crea un nuovo progetto o usa un progetto esistente per questa guida. Lo scopo del "progetto" è raggruppare vari servizi in Google Cloud. Il progetto è il nodo più alto di questa gerarchia di servizi e il resto dei servizi sta andando sotto di esso. Un servizio creato nell'ambito di un progetto non è accessibile da un altro progetto. Una volta creato il progetto, copia e conserva il suo ID in un luogo sicuro. Nella schermata seguente, l'id del progetto è somma-carismatica-202020, e potrebbe essere diverso nella tua console cloud. 
  3. Passa al seguente URL web per scaricare il file delle credenziali in formato JSON per autenticare l'utente durante la connessione con la piattaforma cloud di Google. Questo è l'account amministratore; quindi assicurati che questo file di credenziali sia al sicuro in una posizione sicura. https://console.nube.Google.com/apis/credentials/serviceaccountkey 
  4. Crea un file e rinominalo come principale.tf. Questo file è il file di configurazione per terraform, quindi usa il seguente blocco di codice come prime righe di codice. Il nome del provider serve per indicare il provider con cui connettersi. Terraform supporta un gran numero di piattaforme cloud; quindi il nome della piattaforma cloud deve essere esplicitamente dichiarato. Qui è Google, il che significa che si connette alla piattaforma cloud di Google. Oltre all'intestazione, ci sono 3 attributi nel blocco, l'attributo "credentials" serve per specificare il nome del file di credenziali scaricato sopra, il nome del progetto è la posizione in google cloud in cui viene creata l'istanza VM. L'id creato nel passaggio 3 viene utilizzato come nome del progetto qui. La regione è la posizione geografica in cui viene creata l'istanza VM. Ci sono più regioni. Usa questo link per fare riferimento a tutte le regioni disponibili. https://cloud.Google.com/appengine/docs/locations provider "google"
    credenziali = "$file("CREDENTIALS_FILE.json")"
    progetto     = "NOME_PROGETTO"
    regione      = "REGION_NAME"

  1. Usa il seguente comando per installare i plugin per terraform. Il seguente comando esegue automaticamente la scansione del file di configurazione di terraform e identifica quali plug-in installare, inoltre scarica anche le informazioni del provider per terraform. Questa guida utilizza la piattaforma Google Cloud; quindi scarica le informazioni del provider di terraformazione cloud di Google. Il comando identifica il provider dal nome indicato nella parola chiave "provider" nel file di configurazione di terraform. terraform inizia
  1. Usa i seguenti due blocchi di codice per definire più informazioni per l'istanza VM. Dall'inizio, utilizza il plug-in id casuale per generare un numero casuale con 8 cifre, quindi assegna quel numero alla variabile instance_id da utilizzare come prefisso per il nome per l'istanza VM. Nel secondo blocco di codice, crea un'istanza VM con il nome "nucuta-vm-. Il tipo di macchina è il pacchetto del server utilizzato per ospitare l'istanza VM. Fare riferimento a questo URL Web per trovare i tipi di macchine disponibili. https://cloud.Google.com/calcolo/docs/tipo-macchina. La zona è la posizione esatta della regione. Ci sono principalmente 3 zone disponibili in ogni regione, a, b, c. Ogni zona ha la propria configurazione hardware/software. Usa questo URL web per fare riferimento a tutte le zone disponibili e alla loro configurazione hardware. https://cloud.Google.com/compute/docs/regions-zones/ resource "random_id" "instance_id"
    lunghezza_byte = 8

    risorsa "google_compute_instance" "nucuta"
    nome = "nucuta-vm-$random_id.id_istanza.esadecimale"
    machine_type = "f1-micro"
    zona = "asia-sud1-a"
  1. Usa il seguente blocco di codice all'interno del blocco di codice "google_compute_instance". Specifica il sistema operativo da utilizzare. Usa questo URL web per trovare tutti i sistemi operativi disponibili per la piattaforma cloud di Google. https://cloud.Google.com/compute/docs/images. Dice immagine, perché i sistemi operativi sono archiviati come file "immagine". Quando il file di configurazione terraform viene eseguito, il file immagine viene estratto e il suo sistema operativo viene installato nell'istanza VM proprio come su un normale computer. L'attributo dell'immagine è in questo formato, progetto di immagine/ famiglia di immagini. disco di avvio
    inizializza_parametri
    immagine = "ubuntu-os-cloud/ubuntu-1604-lts"

  1. Usa il seguente codice nel blocco di codice "google_compute_instance". Specifica lo script di avvio da eseguire sull'istanza VM appena creata. Questo script viene eseguito non appena è stata creata l'istanza VM. Nell'esempio seguente, aggiorna il repository di informazioni sul pacchetto locale con le informazioni più recenti, quindi aggiorna tutti i pacchetti con dist-upgrade, quindi installa il pacchetto nginx. Assicurati di utilizzare il flag -y per rendere il processo non interattivo, il che significa che esegue ed esegue automaticamente il processo senza richiedere l'intervento dell'utente. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade ;
    sudo apt-get -y install nginx"
  1. Usa il seguente blocco di codice nel blocco di codice "google_compute_instance". Il seguente blocco di codice specifica l'interfaccia di rete, che viene utilizzata per connettere l'istanza VM corrente con altre istanze VM, dispositivi e reti. Il blocco Access_config viene utilizzato per allocare all'istanza VM un indirizzo IP esterno per accedervi da Internet. interfaccia di rete
    rete = "predefinito"
    access_config

  1. Infine, usa il seguente blocco di codice nel blocco di codice "google_compute_instance". Specifica il nome utente e la chiave SSH pubblica. Assicurati che la chiave SSH pubblica generata sia nella stessa cartella del file di configurazione di terraform. Il nome utente dovrebbe essere il nome dell'account da cui è stata creata la chiave SSH, ad esempio se il nome dell'account è root, il suo nome utente è root. metadati
    sshKeys = "dilanga:$file("dilanga.pub")"

  1. Il blocco di codice finale dovrebbe essere simile a questo 
  2. Usa il seguente blocco di codice al di fuori del blocco di codice “google_compute_instance”. Per impostazione predefinita, l'istanza VM blocca tutto il traffico in entrata e in uscita. Poiché questa guida crea un server Web, è necessario aprire le porte 80 e 443 per consentire agli utenti di accedervi tramite Internet. Dall'inizio, l'attributo name crea un profilo in google compute firewall per questa regola, l'attributo network specifica a quale interfaccia di rete si applica la regola, il blocco allow consente i protocolli e le sue porte specificate sotto di esso. Il protocollo Icmp viene utilizzato per eseguire il ping del server Web per assicurarsi che sia disponibile al pubblico. Il ping è spesso utilizzato da molti servizi per scoprire la disponibilità di un sito web. risorsa "google_compute_firewall" "predefinito"
    nome    = "nginx-firewall"
    rete = "predefinito"
     
    permettere
    protocollo = "tcp"
    porte    = ["80","443"]

     
    permettere
    protocollo = "icmp"

  3. Usa il seguente blocco di codice al di fuori di "google_compute_instance" per stampare l'indirizzo IP pubblico dell'istanza VM corrente. uscita "ip"
    valore = "$google_compute_instance.nucuta.interfaccia di rete.0.access_config.0.nat_ip"
  4. Usa il seguente comando per verificare il file di configurazione e il file delle credenziali. Visualizza anche in anteprima come appare il risultato finale una volta che il file di configurazione è stato eseguito. piano terraformato
  5. quindi usa il seguente comando per eseguire il file di configurazione. applicare terraform
  6. Ora usa l'indirizzo IP pubblico su qualsiasi browser Web per accedere al server Web dell'istanza VM.
  7. Utilizzare il seguente comando per accedere all'istanza VM su SSH per gestire il server. Assicurati che la chiave privata sia nella directory corrente o specifica il percorso della chiave privata.
  8. ssh -i @

    Conclusione

    Questo dovrebbe essere sufficiente per iniziare.  Il file di configurazione completo, main.tf, è mostrato sotto. I testi evidenziati possono essere modificati in base alle esigenze dell'utente.

    fornitore "google"
    credenziali = "$file("dilannga_credentials.json")"
    progetto     = "somma-carismatica-202020"
    regione      = "asia-sud1"

     
    risorsa "id_casuale" "id_istanza"
    lunghezza_byte = 8

     
    risorsa "google_compute_instance" "nucuta"
    nome         = "nucuta-vm-$random_id.id_istanza.esadecimale"
    machine_type = "f1-micro"
    zona         = "asia-sud1-a"
     
    disco di avvio
    inizializza_parametri
    immagine = "ubuntu-os-cloud/ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade ;
    sudo apt-get -y install nginx"
     
    interfaccia di rete
    rete = "predefinito"
     
    access_config
     


     
    metadati
    sshKeys = "dilanga:$file("dilanga.pub")"


     
    risorsa "google_compute_firewall" "predefinito"
    nome    = "nginx-firewall"
    rete = "predefinito"
     
    permettere
    protocollo = "tcp"
    porte    = ["80","443"]

     
    permettere
    protocollo = "icmp"


     
    uscita "ip"
    valore = "$google_compute_instance.nucuta.interfaccia di rete.0.access_config.0.nat_ip"
Le migliori app di mappatura del gamepad per Linux
Se ti piace giocare su Linux con un gamepad invece di un tipico sistema di input di tastiera e mouse, ci sono alcune app utili per te. Molti giochi pe...
Strumenti utili per i giocatori Linux
Se ti piace giocare su Linux, è probabile che tu abbia utilizzato app e utilità come Wine, Lutris e OBS Studio per migliorare l'esperienza di gioco. O...
Giochi rimasterizzati in HD per Linux che non hanno mai avuto una versione Linux prima
Molti sviluppatori ed editori di giochi stanno realizzando remaster HD di vecchi giochi per prolungare la vita del franchise, per favore i fan richied...