Provisioning, configurazione e rimozione delle risorse

Utilizzare Terraform per distribuire, modificare e rimuovere le risorse nel cloud in modo efficiente.

Informazioni sui file di stato Terraform

Terraform memorizza le informazioni sullo stato per tenere traccia delle risorse dell'infrastruttura gestita, mappare le risorse distribuite alla configurazione, tenere traccia dei metadati e migliorare le prestazioni per le distribuzioni dell'infrastruttura di grandi dimensioni.

Per impostazione predefinita, il file terraform.tfstate è memorizzato sull'host locale. Questo funzionamento predefinito non è ottimale negli ambienti IT in cui più utenti devono creare ed eliminare le risorse definite in una determinata configurazione. Per controllare la distribuzione e la gestione delle risorse in un ambiente multiutente, memorizzare i file di stato Terraform nello storage degli oggetti Oracle Cloud Infrastructure e condividere i file di stato e i file di lock tra tutti gli utenti.

Vedere Utilizzo dell'area di memorizzazione degli oggetti per i file di stato Terraform.

Creazione delle risorse

Dopo aver impostato le variabili nel file terraform.tfvars, utilizzare l'interfaccia CLI Terraform per distribuire le risorse definite nella configurazione di Terraform.

Prima di iniziare, assicurarsi che il computer locale disponga dell'accesso a Internet. Se il computer locale è protetto da un firewall, utilizzare un proxy appropriato per consentire a Terraform di raggiungere Internet.
  1. Nel computer in cui è installato Terraform, andare alla directory che contiene il file terraform.tfvars.
  2. Per inizializzare Terraform, eseguire il comando seguente:
    terraform init
    Il comando scarica il plugin provider oci e imposta la directory per l'uso da parte di Terraform.
  3. Verificare che la sintassi della configurazione non contenga errori:
    terraform validate
  4. Se si verifica un errore di sintassi, correggere l'errore e ripetere il passo precedente.
    Per eseguire il debug dei problemi, è possibile configurare il log:
    • Impostare il livello di log utilizzando la variabile di ambiente TF_LOG. I livelli di log supportati sono TRACE, DEBUG, INFO, WARN o ERROR. Il livello TRACE è il più descrittivo.
    • Impostare il percorso del file di log utilizzando la variabile di ambiente TF_LOG_PATH.
  5. Controllare le risorse definite nella configurazione.
    terraform plan
    L'output mostra i dettagli di tutte le azioni eseguite quando si applica questa configurazione e un riepilogo come mostrato nell'esempio riportato di seguito.
    Plan: 8 to add, 0 to change, 0 to destroy.

    Nota:

    Il numero 8 nel messaggio è un esempio. Il numero effettivo dipende dalle impostazioni definite nella configurazione di Terraform.
  6. Se si desidera apportare modifiche, modificare la configurazione, convalidarla e rivedere il piano rivisto.
  7. Creare le risorse:
    terraform apply
  8. Alla richiesta Do you want to perform these actions?, immettere
    Poiché Terraform crea ciascuna risorsa, visualizza lo stato dell'operazione.

    Quando vengono create tutte le risorse, viene visualizzato il messaggio Apply complete, insieme al numero di risorse aggiunte, modificate ed eliminate, come mostrato nell'esempio riportato di seguito.

Apply complete! Resources: 33 added, 0 changed, 0 destroyed.

Outputs:

admin_private_ip = 10.0.1.10
bastion_public_ip = 203.0.113.101
kubeconfig = export KUBECONFIG=generated/kubeconfig
ocirtoken = <sensitive>
ssh_to_admin = ssh -i /home/joe/.ssh/id_rsa -J opc@203.0.113.101 opc@10.0.1.10
ssh_to_bastion = ssh -i /home/joe/.ssh/id_rsa opc@203.0.113.101
  • L'output kubeconfig visualizza il comando che è possibile utilizzare per impostare la variabile di ambiente KUBECONFIG sull'host locale. Eseguire questo comando se si desidera utilizzare l'interfaccia CLI kubectl dall'host locale per gestire il cluster Kubernetes. Il comando imposta KUBECONFIG sul file generated/kubeconfig, che Terraform crea durante l'applicazione della configurazione.
  • L'output ssh_to_admin visualizza il comando ssh che è possibile utilizzare per connettersi all'host di amministrazione.
  • L'output ssh_to_bastion visualizza il comando ssh che è possibile utilizzare per connettersi all'host di base.

Nota:

È possibile visualizzare questo output Terraform in qualsiasi momento eseguendo il comando terraform output
La topologia di Kubernetes in Oracle Cloud è pronta. Ora è possibile distribuire le applicazioni in container.

Consenti all'host di amministrazione di gestire le risorse

Per consentire all'host di amministrazione di gestire le risorse nel compartimento, puoi designare tale host come principal dell'istanza. Usare questa funzione se si desidera eseguire i comandi CLI o effettuare chiamate API dall'host di amministrazione per gestire le risorse nella topologia.

Un'istanza di computazione designata come principal di istanza ottiene una propria identità univoca. Può eseguire l'autenticazione utilizzando certificati creati e assegnati automaticamente all'istanza. I certificati vengono ruotati periodicamente. Non è necessario distribuire le credenziali all'host di amministrazione o ruotarle.

Nota:

Qualsiasi utente in grado di connettersi a un'istanza di computazione mediante SSH eredita i privilegi di contesto dell'istanza concessi all'istanza. Indicare se si desidera designare l'host di amministrazione come principal di istanza. È possibile disattivare o attivare questa funzione in qualsiasi momento senza alcun impatto sull'host di amministrazione.
  • Per designare l'host di amministrazione come principal di istanza, impostare quanto segue in terraform.tfvars, quindi eseguire terraform apply.

    admin_instance_principal = true

    L'host di amministrazione è diventato membro di un gruppo dinamico e viene creata un'istruzione di criterio per consentire al gruppo dinamico di gestire tutte le risorse nel compartimento.

  • Per ritirare i privilegi del principal dell'istanza dall'host di amministrazione, impostare quanto segue in terraform.tfvars, quindi eseguire terraform apply.

    admin_instance_principal = false

Abilitare o disabilitare le notifiche per l'host di base

È possibile utilizzare il servizio di notifica di Oracle Cloud Infrastructure per ricevere messaggi di stato dall'host di base quando vengono applicati gli aggiornamenti o quando Oracle Ksplice rileva un tentativo di esplosione conosciuto.

Nota:

Il codice Terraform in questa soluzione configura le notifiche solo quando si usa l'immagine Oracle Autonomous Linux predefinita.
  • Per abilitare le notifiche per l'host di base, impostare le variabili seguenti in terraform.tfvars:

    bastion_notification_enabled = true
    bastion_notification_endpoint = "email_address"
    bastion_notification_protocol = "EMAIL"
    bastion_notification_topic = "topic_name"

    Di seguito è riportato un esempio di terraform.tfvars con le variabili correlate alle notifiche definite.

    bastion_notification_enabled = true
    bastion_notification_endpoint = "joe@example.com"
    bastion_notification_protocol = "EMAIL"
    bastion_notification_topic = "bastion"
  • Se l'host di base è già stato creato e si desidera abilitare le notifiche ora, impostare queste variabili ed eseguire di nuovo terraform apply.
    • I criteri richiesti vengono definiti per consentire all'host di base di pubblicare le notifiche.
    • Viene creato un argomento di notifica e l'indirizzo e-mail specificato è sottoscritto all'argomento.
    • L'host di base è configurato per l'invio delle notifiche.

    Dopo aver creato le risorse, si riceverà un messaggio di posta elettronica in cui viene richiesto di confermare la sottoscrizione.

  • Per disabilitare le notifiche, impostare quanto segue in terraform.tfvars ed eseguire terraform apply.

    bastion_notification_enabled = false
    admin_notification_enabled = false

Rimuovi tutte le risorse

  1. Nel computer in cui è installato Terraform, andare alla directory che contiene il file terraform.tfvars.
  2. Immettere il seguente comando:
    terraform destroy
    Terraform visualizza i dettagli delle risorse che verranno eliminate, come mostrato in questo esempio.
    Plan: 0 to add, 0 to change, 12 to destroy.
  3. Alla richiesta Do you really want to destroy all resources?, immettere
    Poiché Terraform rimuove ogni risorsa, visualizza lo stato dell'operazione.
    Dopo aver rimosso tutte le risorse, viene visualizzato il messaggio Destroy complete, insieme al numero di risorse eliminate, come mostrato nell'esempio riportato di seguito.
    Destroy complete! Resources: 12 destroyed.