Informazioni sulla configurazione di Terraform nei sistemi UNIX-Like

Per utilizzare Terraform per creare i componenti di Oracle Cloud Infrastructure, è necessario scaricare e installare Terraform. Verranno scaricati anche i moduli Terraform che creano i file di configurazione che verranno utilizzati per creare i componenti necessari dell'infrastruttura.

Il sistema in cui installare Terraform e memorizzare i moduli Teraform può essere on premise o nel cloud. Per comodità, faremo riferimento al sistema locale o all'host locale.

Prima di eseguire Terraform, effettuare le operazioni riportate di seguito.

  • Genera una coppia di chiavi SSH utilizzata per consentire l'accesso alle istanze di calcolo.

  • Genera una chiave di firma API utilizzata per autenticare le chiamate API effettuate da Terraform

  • Impostare le variabili di ambiente utilizzate da Terraform per autenticare l'accesso ed eseguire i relativi piani

Dopo aver completato questi passi, è possibile applicare i file di configurazione Terraform per creare i componenti dell'infrastruttura in Oracle Cloud Infrastructure.

Installa Terraform

Per installare Terraform in un sistema Linux o UNIX-like, scaricare il package appropriato dal sito Web Terraform.

  1. Passare a https://www.terraform.io/downloads.html.
  2. Scaricare il package applicabile nel sistema locale in uso.
  3. Estrarre il package nel percorso /usr/local/bin/.
    Non è richiesta alcuna ulteriore installazione. Terraform ora è installata e pronta per l'uso.

    È inoltre possibile estrarre Terraform in qualsiasi altra posizione nel sistema locale. Assicurarsi che la posizione sia aggiunta alla variabile PATH sul sistema.

  4. Per verificare l'installazione e controllare la versione, aprire un terminale ed eseguire terraform -version.
    Nell'output verrà visualizzata la versione Terraform. Ad esempio: Terraform v0.11.8

Scarica i moduli Terraform

Per iniziare a creare i componenti dell'infrastruttura in Oracle Cloud Infrastructure utilizzando Terraform, scaricare i moduli Terraform.

  1. Utilizzare Git o un browser Web per duplicare o scaricare i moduli Terraform nel sistema locale. Fare clic su Scarica codice nella navigazione a sinistra per il collegamento al repository Git.
  2. Estrarre i moduli Terraform in una directory del sistema locale.
  3. Accedere alla directory in cui si trovano i moduli Terraform. Eseguire terraform init. Verrà inoltre scaricato il provider Oracle Cloud Infrastructure per Terraform.
    Terraform inizializza i moduli insieme al plugin di provider OCI. Al termine dell'inizializzazione, verrà visualizzato il messaggio Terraform has been successfully initialized!

Genera una coppia di chiavi SSH per accedere agli host di base

Una coppia di chiavi SSH consente di accedere in modo sicuro alle istanze create nelle subnet pubbliche. Si genera una coppia di chiavi SSH nell'host locale. I moduli Terraform aggiungono quindi la chiave pubblica SSH agli host di base. Quando occorre connettersi all'host di base su Internet pubblico, è necessario fornire la chiave privata SSH per autenticare l'accesso.

È possibile utilizzare la utility ssh-keygen per generare una coppia di chiavi SSH. Non impostare una passphrase per la chiave SSH.

  • Per generare una coppia di chiavi SSH mediante la utility ssh-keygen, in un terminale immettere: ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
    In questo comando:
    • -t rsa specifica che la chiave deve essere generata utilizzando l'algoritmo RSA

    • -N "" specifica la passphrase che si desidera associare alla chiave. Non immettere alcun valore tra i preventivi. La chiave viene creata senza passphrase.

    • -b 2048 specifica che si desidera generare una chiave a 2048bit. Questo è il valore predefinito ed è anche il valore minimo consigliato.

    • -C "<key_name>" specifica il nome della coppia di chiavi.

    • -f <path/root_name> specifica la posizione in cui la chiave viene salvata e il nome radice della chiave pubblica e privata. La chiave pubblica ha .pub aggiunto al nome radice.

La coppia di chiavi SSH viene generata e salvata nella posizione specificata dall'utente. Prendere nota di questa posizione.

Genera una coppia di chiavi SSH per accedere ad altre istanze

Gli host di base vengono utilizzati per abilitare l'inoltro SSH ad altre istanze che non dispongono di indirizzi IP pubblici e non consentono l'accesso tramite la rete Internet pubblica. Per accedere in modo sicuro ad altre istanze dall'host di base, utilizzare una coppia di chiavi SSH in cui la chiave pubblica memorizzata nelle istanze delle subnet private corrisponde a una chiave privata memorizzata nel computer locale. Come procedura consigliata per la sicurezza, questa coppia di chiavi SSH non deve essere uguale alla coppia di chiavi SSH utilizzata per accedere all'host di base.

Utilizzare ssh-keygen sull'host locale per generare un'altra coppia di chiavi SSH. Prendere nota della posizione in cui salvare la coppia di chiavi SSH.

Genera una chiave di firma API

Fornire una coppia di chiavi RSA nel formato PEM (Privacy Enhanced Mail) per autenticare lo script Terraform con Oracle Cloud Infrastructure. Tenere presente che la chiave di firma API non è la stessa della coppia di chiavi SSH utilizzata per accedere alle istanze. È possibile utilizzare OpenSSL per generare questa coppia di chiavi.

  1. Creare una directory nascosta nell'area home per memorizzare la chiave PEM. Immettere: mkdir ~/.oci
  2. Utilizzare OpenSSL per generare una chiave privata. Ricordarsi di specificare 2048 bit o superiore quando si genera la chiave privata. Immettere: openssl genrsa -out ~/.oci/key_name.pem 2048
  3. Modificare le autorizzazioni sulla chiave privata per assicurarsi che solo l'utente possa leggere la chiave privata. Immettere: chmod go-rwx ~/.oci/key_name.pem
  4. Successivamente, utilizzare OpenSSL per generare la chiave pubblica per la chiave privata specificata. Immettere: openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
È possibile memorizzare la chiave di firma API in qualsiasi altra posizione. Tuttavia, assicurarsi di prendere nota di questa posizione.

Caricare la chiave di firma API mediante la console

Dopo aver generato una chiave di firma API, è necessario caricare la chiave pubblica per l'utente associato in Oracle Cloud Infrastructure. La prima volta che si carica una chiave di firma API, è necessario utilizzare la console. In seguito sarà possibile anche utilizzare l'API per caricare una chiave API.

  1. Accedere alla console di Oracle Cloud Infrastructure.
  2. Fare clic su Identità, quindi su Utenti.
  3. Fare clic sull'utente per il quale si desidera aggiungere la chiave di firma API.
  4. Nella pagina dei dettagli dell'utente fare clic su Aggiungi chiave pubblica.
  5. Nel sistema locale, per copiare la chiave pubblica immettere: cat ~/.oci/key_name_public.pem | pbcopy
    Se la chiave è stata salvata in una posizione diversa, immettere il percorso di tale posizione.
  6. Nella console incollare il valore della chiave pubblica e fare clic su Aggiungi.

Imposta variabili di ambiente

I moduli Terraform forniti qui consentono di impostare le variabili di ambiente specificando i valori necessari in un file di testo. È possibile creare una nuova origine del file per assicurarsi che tutte le variabili di ambiente necessarie siano impostate in modo appropriato.

Prima di iniziare, collegarsi alla console di Oracle Cloud Infrastructure. Utilizzare la console per trovare le informazioni riportate di seguito.

  • OCID (tenancy Oracle Cloud Infrastructure ID)

  • OCID utente

  • L'impronta della chiave di firma API che si desidera utilizzare

  • L'area

  • OCID del compartimento

Inoltre, assicurati di conoscere la posizione in cui la chiave di firma API e la coppia di chiavi SSH vengono memorizzate sul sistema locale.

  1. Nel sistema locale accedere alla directory in cui si trovano i moduli Terraform.
  2. Aprire il file env-vars in un editor di testo.
  3. Il file env-vars contiene quattro sezioni. Iniziare con la sezione Dettagli autenticazione.
    1. Immettere l'OCID della tenancy. Puoi trovare l'OCID della tenancy nella parte inferiore della console di Oracle Cloud Infrastructure. È una stringa simile a: ocid1.tenancy.oc1..aaaaa.... Incollare questo valore nel file env-vars.
    2. Inserire l'OCID utente. Per trovare l'OCID utente, nella console di Oracle Cloud Infrastructure fare clic su Identità, quindi su Utenti. L'elenco degli utenti è visualizzato insieme all'OCID utente. Fare clic su Copia sotto il nome utente per copiare l'OCID utente richiesto. Incollare questo valore nel file env-vars.
    3. Immettere l'impronta della chiave di firma API. Nella console di Oracle Cloud Infrastructure, nella pagina Utenti, fare clic sull'utente per visualizzare la pagina dei dettagli dell'utente. Copiare l'impronta della chiave API dalla chiave elencata nella sezione Chiavi API. Incollare questo valore nel file env-vars.
    4. Immettere il percorso completo e il nome file della chiave privata API sul sistema locale.
  4. Nella sezione area del file env-vars immettere l'area In cui si desidera creare i componenti dell'infrastruttura. L'area attualmente visualizzata viene visualizzata nella parte superiore della console di Oracle Cloud Infrastructure. È inoltre possibile utilizzare la console per trovare altre aree alle quali si ha accesso.
  5. Nella sezione del compartimento del file env-vars immettere l'OCID del compartimento In cui si desidera creare i componenti dell'infrastruttura. Assicurarsi che l'utente specificato in precedenza appartenga a un gruppo che dispone delle autorizzazioni richieste per il compartimento specificato qui. Per trovare l'OCID del compartimento, andare alla console di Oracle Cloud Infrastructure. Fare clic su Identità, quindi fare clic su Compartimenti. L'elenco dei compartimenti è visualizzato insieme al OCID del compartimento. Fare clic su Copia sotto il nome del compartimento per copiare l'OCID del compartimento richiesto. Incollare questo valore nel file env-vars.
  6. Nella sezione delle chiavi pubbliche/private del file env-vars, per gli host di base e altre istanze, immettere il percorso completo e il nome file delle chiavi pubbliche e private SSH appropriate sul sistema locale. La chiave privata deve essere in formato openssh.
  7. Verificare di aver immesso correttamente tutti i valori. Se i valori sono stati omessi, verrà richiesto di fornire l'input quando si esegue Terraform. Se sono stati forniti valori errati, Terraform si verifica un errore. Se tutti i valori sono corretti, salvare e chiudere il file env-vars.
  8. Per impostare le variabili di ambiente specificate nel file env-vars, aprire un terminale e passare alla directory in cui si trovano i moduli Terraform. Immettere: source./env-vars

Verifica configurazione Terraform

Dopo aver impostato tutte le variabili di ambiente necessarie, verificare che si sia pronti per eseguire Terraform.

  • In un terminale passare alla directory in cui si trovano i moduli Terraform. Immettere: terraform plan
    L'output di questo comando mostra il piano di esecuzione di tutte le configurazioni in tutti i moduli nella directory corrente. In questo caso vengono descritte le azioni che Terraform eseguirà per modificare l'infrastruttura corrente in modo che corrisponda alle configurazioni. Quando non è stato attualmente creato alcun componente, nell'output viene visualizzata la lista dei componenti che verranno creati quando si esegue terraform apply. Questo comando non crea componenti e viene eseguita senza problemi se si desidera verificare semplicemente che la configurazione sia stata eseguita correttamente e se tutti i valori di autenticazione richiesti sono stati memorizzati correttamente nelle variabili di ambiente appropriate.