Informazioni sulla configurazione di Terraform nei sistemi Windows

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 Windows, 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 nella cartella C:\Program Files (x86).
    Questo percorso viene utilizzato come esempio. Tuttavia, l'eseguibile Terraform può essere configurato in qualsiasi altra posizione nel sistema locale.
  4. Aggiornare la variabile di ambiente del percorso per includere la cartella in cui si trova l'eseguibile Terraform.
    1. Andare al Pannello di controllo.
    2. Fare clic su Sistema.
    3. In un sistema Windows 10, fare clic su Impostazioni di sistema avanzate. Questa opzione può variare in versioni diverse di Windows.
      Viene visualizzata la scheda Avanzate della finestra Proprietà di sistema.
    4. Fare clic su Variabili di ambiente nella parte inferiore della finestra.
      Viene visualizzata la finestra Variabili di ambiente.
    5. Nel riquadro Variabili di sistema fare clic su Percorso, quindi su Modifica.
    6. Fare clic su Nuovo. Aggiungere il percorso alla cartella in cui si trova l'eseguibile Terraform.
    7. Fare clic su OK per salvare le modifiche e quindi su OK per chiudere le finestre delle variabili di ambiente. Fare di nuovo clic su OK per chiudere la finestra Proprietà di sistema.
  5. Per verificare l'installazione e controllare la versione, avviare PowerShell di Windows e immettere: 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 qualsiasi cartella del sistema locale.
  3. Avviare Windows PowerShell e accedere alla cartella in cui si trovano i moduli Terraform. Immettere 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. Se occorre connettersi all'host di base su Internet pubblico, fornire la chiave privata SSH per autenticare l'accesso.

È possibile generare una coppia di chiavi SSH mediante PuTTYgen. Non impostare una passphrase per la chiave SSH.

  1. Avviare PuTTYgen.
  2. Accettare il tipo di chiave predefinito di SSH-2 RSA e impostare il numero di bit in una chiave generata su 2048 se non è già impostata.
  3. Fare clic su Genera, quindi spostare il mouse intorno all'area vuota per generare la casualità.
    La chiave viene generata e il relativo valore viene visualizzato sotto Chiave pubblica per poter essere incollato nel file OpenSSH authorized_keys.
  4. Fare clic su Salva chiave privata. Viene richiesto di confermare che si desidera salvare la chiave senza passphrase. Fare clic su Sì. È possibile memorizzare questa chiave in qualsiasi posizione, ma per semplicità, memorizzarla nella stessa cartella in cui si trovano i moduli Terraform.
  5. Per salvare la chiave pubblica, selezionare tutte le chiavi generate che appaiono nella chiave pubblica e incollarle nel campo del file OpenSSH authorized_keys, copiarla e incollarla in un file di testo. Salvare questo file nella stessa posizione della chiave privata. Non utilizzare il pulsante Salva chiave pubblica poiché non salva la chiave in formato OpenSSH.
La coppia di chiavi SSH generata e memorizzata è stata generata nel sistema locale. Assicurarsi di prendere nota della posizione in cui è memorizzata questa coppia di chiavi.

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.

La coppia di chiavi SSH utilizzata per abilitare l'accesso dall'host di base alle altre istanze deve essere generata utilizzando una utility quale OpenSSL o ssh-keygen. Non è possibile utilizzare una coppia di chiavi SSH generata in Windows utilizzando PuTTY poiché il formato .ppk utilizzato da PuTTY non è supportato in Oracle Linux o in altri sistemi operativi UNIX-like. Tenere presente che l'host di base, che inoltra il traffico SSH ad altre istanze, utilizza un'immagine Oracle Linux.

  1. Avviare Bash Git.
  2. 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 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 generare questa coppia di chiavi utilizzando OpenSSL in Git Bash. È necessario aver già installato il Bash Git sul sistema locale.

  1. Avviare Bash Git.
  2. Creare una cartella nascosta in cui memorizzare la chiave di PEM. È possibile memorizzare la chiave di PEM in qualsiasi posizione, ma per semplicità, creare questa cartella nella cartella in cui si trovano i moduli Terraform. Assicurarsi di prendere nota della posizione in cui memorizzare la coppia di chiavi. Passare a tale posizione e immettere: mkdir./.oci
  3. Per creare la chiave di firma API, immettere: openssl genrsa -out./.oci/key_name.pem 2048
  4. 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
  5. Successivamente, 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
Le chiavi di firma API pubblica e privata vengono memorizzate nella cartella specificata.

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. Avviare Bash Git sul sistema locale. Passare alla cartella in cui è stata memorizzata la coppia di chiavi di firma API.
  6. Per copiare la chiave pubblica, immettere: cat./key_name_public.pem. Viene visualizzato il valore della chiave pubblica. Copiare questo valore, incluse le righe -----BEGIN PUBLIC KEY----- e -----END PUBLIC KEY-----.
  7. 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.ps1 in un editor di testo.
  3. Il file env-vars contiene diverse 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. Nelle sezioni delle chiavi pubbliche/private del file env-vars immettere il percorso completo e il nome file della chiave pubblica SSH e la chiave privata SSH sul sistema locale. Assicurarsi che le chiavi pubbliche e private specificate per l'uso sugli host di base siano la coppia di chiavi creata utilizzando PuTTY e le chiavi specificate per l'uso sulle altre istanze siano la coppia di chiavi creata utilizzando ssh-keygen.
  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, avviare Windows PowerShell, passare alla cartella in cui si trovano i moduli Terraform e immettere: env-vars.ps1
    Verrà eseguito il file env-vars.ps1, che imposta tutte le variabili specificate in questo file per la sessione corrente.
  9. Per verificare che le variabili di ambiente siano state impostate, immettere: dir env:
    Vengono elencate tutte le variabili di ambiente. È possibile visualizzare le variabili TF_VAR per verificare che i relativi valori siano stati impostati come previsto.

Verifica configurazione Terraform

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

  • Avviare Windows PowerShell e passare alla cartella 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.