Preparazione per il provisioning delle risorse di infrastruttura

Installare Terraform e generare le chiavi richieste per creare le risorse dell'infrastruttura in Oracle Cloud.

Operazioni preliminari

Prima di iniziare a creare le risorse in Oracle Cloud Infrastructure, verificare di disporre delle informazioni riportate di seguito.

  • Credenziali per una tenancy Oracle Cloud.

  • Compartimento che dispone dell'autorizzazione per creare e gestire le risorse al suo interno.
  • Un computer che dispone del software seguente e ha accesso a Internet:

    • Utility per la generazione di chiavi di firma API.

      La maggior parte dei sistemi UNIX è caratterizzata da openssl. In Windows è possibile usare Bash Git.

    • Utility per la generazione di coppie di chiavi SSH.

      La maggior parte dei sistemi UNIX è caratterizzata da ssh-keygen. In Windows è possibile utilizzare PuTTY.

    • Browser Web.

  • Conoscenza di base di Terraform.

    Vedere almeno l'introduzione all'indirizzo https://www.terraform.io/intro/.

Installare Terragrunt

Terragrunt è uno strumento di terze parti per applicare e gestire i moduli Terraform in modo efficiente. Invece di applicare i moduli singolarmente utilizzando Terraform, è possibile distribuire le risorse definite in tutti i moduli, nella sequenza corretta, utilizzando un'unica operazione di Terragrunt.

Per scaricare e installare Terragrunt, seguire le istruzioni all'indirizzo https://github.com/gruntwork-io/terragrunt#install-terragrunt.

Nota:

Se si installa Terragrunt su Linux o macOS utilizzando brew, Terraform viene installato automaticamente come una delle dipendenze. Non è necessario installare Terraform.

Installare Terraform

Nei sistemi UNIX o Linux, incluso Oracle Linux, è possibile installare Terraform scaricando ed estraendo il pacchetto Terraform per il sistema operativo.

  1. Andare all'indirizzo https://www.terraform.io/downloads.html.
  2. Scaricare il package appropriato in base al sistema operativo in uso.
  3. Estrarre il package nel percorso /usr/local/bin/.
    È possibile estrarre Terraform in qualsiasi altra directory dell'host locale. Assicurarsi che la directory sia inclusa nella variabile PATH.
    Terraform è installato e pronto per l'uso.
  4. Verificare l'installazione.
    terraform -v

    Viene visualizzata la versione di Terraform, come mostrato in questo esempio.

    Terraform v0.12.18

Genera una chiave di firma API

Per abilitare Terraform per l'autenticazione con Oracle Cloud Infrastructure, è necessario fornire una chiave RSA nel formato privacy-enhanced mail (PEM). Questa chiave non è uguale alla chiave SSH usata per accedere alle istanze di computazione.

Utilizzare OpenSSL per generare la chiave di firma API.
  1. Creare una sottodirectory nascosta nella directory home per memorizzare la chiave PEM.
    mkdir ~/.oci
  2. Genera una chiave privata (dimensione: 2048 bit o superiore).
    openssl genrsa -out ~/.oci/oci_api_key.pem 2048
  3. Modificare le autorizzazioni del file della chiave privata per assicurarsi che solo l'utente possa leggere la chiave.
    chmod go-rwx ~/.oci/oci_api_key.pem
  4. Generare la chiave pubblica per la chiave privata.
    openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem

Carica la chiave di firma API

Dopo aver generato una chiave di firma API, caricare la chiave pubblica per l'utente appropriato in Oracle Cloud Infrastructure.

  1. Collegarsi alla console Web di Oracle Cloud Infrastructure.
  2. Dal menu Servizi, selezionare Identità, quindi Utenti.
  3. Nella pagina Utenti fare clic sull'utente che si intende specificare nella configurazione Terraform.
  4. Nella pagina dei dettagli dell'utente fare clic su Aggiungi chiave pubblica.
  5. Copiare il valore della chiave pubblica dal file ~/.oci/oci_api_key_public.pem e incollarlo nel campo PUBLIC KEY.
  6. Fare clic su Aggiungi.
    La chiave viene caricata e viene visualizzata l'impronta.
  7. Copiare l'impronta. Questa operazione è necessaria in un secondo momento.

Genera una coppia di chiavi SSH per l'host di base

Viene utilizzata una coppia di chiavi SSH per abilitare l'accesso sicuro alle istanze. Viene generata una coppia di chiavi sull'host locale. I moduli Terraform aggiungono quindi la chiave pubblica all'host di base. Quando ci si connette all'host di base, è necessario fornire la chiave privata per autenticare l'accesso.

  • Utilizzare l'utility ssh-keygen e generare una coppia di chiavi SSH. Non impostare una passphrase per la coppia di chiavi.
    ssh-keygen -t rsa -N "" -b 2048 -C "key_name" -f path/root_name
    • -t rsa: specifica che la coppia di chiavi deve essere generata con l'algoritmo RSA

    • -N "": specifica la passphrase che si desidera associare a questa coppia di chiavi. Non immettere alcuna virgoletta tra le virgolette. Creare la coppia di chiavi senza passphrase.

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

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

    • -f path/root_name: specifica la directory in cui viene salvata la coppia di chiavi 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 directory specificata. Prendere nota del percorso completo e del nome dei file chiave.

Genera una coppia di chiavi SSH per le istanze private

Un host di base abilita l'inoltro SSH alle istanze che non dispongono di indirizzi IP pubblici. Per accedere in modo sicuro a queste istanze private tramite l'host di base, utilizzare una coppia di chiavi SSH. Come procedura consigliata per la sicurezza, questa coppia di chiavi non deve essere la stessa della coppia di chiavi utilizzata per l'host di base.

  • Utilizzare l'utility ssh-keygen e generare una coppia di chiavi SSH. Non impostare una passphrase per la coppia di chiavi.
    ssh-keygen -t rsa -N "" -b 2048 -C "key_name" -f path/root_name
    • -t rsa: specifica che la coppia di chiavi deve essere generata con l'algoritmo RSA

    • -N "": specifica la passphrase che si desidera associare a questa coppia di chiavi. Non immettere alcuna virgoletta tra le virgolette. Creare la coppia di chiavi senza passphrase.

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

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

    • -f path/root_name: specifica la directory in cui viene salvata la coppia di chiavi 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 directory specificata. Prendere nota del percorso completo e del nome dei file chiave.