Crea un compartimento

Utilizza Terraform per connetterti al tuo account Oracle Cloud Infrastructure e creare un compartimento nella tua tenancy.

I task chiave includono come:

  • Utilizza le risorse del provider Terraform di Oracle Cloud Infrastructure per:
    • Dichiara un compartimento con le tue specifiche
    • Creare il compartimento nella tenancy.
Diagramma di un utente connesso da un computer locale a una tenancy Oracle Cloud Infrastructure. L'ambiente locale è Linux e Terraform è installato. Nell'ambiente locale è presente una freccia da Terraform al registro Terraform e alla tenancy che punta a un compartimento. Queste frecce suggeriscono che l'utente abbia creato un compartimento nella tenancy utilizzando Terraform e il registro Terraform.

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.

1. Prepara

Preparare l'ambiente per l'autenticazione e l'esecuzione degli script Terraform. Inoltre, raccogliere tutte le informazioni necessarie per completare il tutorial.

Ottieni informazioni sulla tenancy

Raccogliere le informazioni seguenti dalla console di Oracle Cloud e copiarle nel tastierino note.

  • OCID tenancy: <tenancy-ocid>
    1. Nel menu di navigazione selezionare il menu Profilo Icona menu Profilo, quindi selezionare Tenancy: <your_tenancy_name>.
    2. Accanto a OCID, selezionare Copia.

      L'OCID tenancy viene copiato negli Appunti.

Aggiungi criterio compartimento

Se il nome utente si trova nel gruppo Administrators, saltare questa sezione. In caso contrario, chiedere all'amministratore di aggiungere il criterio seguente alla tenancy:

allow group <a-group-your-username-belongs-to> to manage compartments in tenancy

Questo privilegio consente di creare un compartimento per tutte le risorse dell'esercitazione.

Passi per aggiungere il criterio
  1. Accedi alla console di Oracle Cloud.
  2. Nel menu di navigazione selezionare il menu Profilo Icona menu Profilo e quindi selezionare Impostazioni utente o Profilo personale, a seconda dell'opzione visualizzata.
  3. Selezionare Gruppi o Gruppi personali, a seconda dell'opzione visualizzata.
  4. In un blocco note, copia il nome di un gruppo a cui appartiene il tuo nome utente.
  5. Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Criteri.
  6. Selezionare il compartimento: <your-tenancy>(root)
  7. Selezionare Crea criterio.
  8. Nella pagina Crea criterio, immettere i valori riportati di seguito.
    • Nome: manage-compartments
    • Descrizione: Allow the group <a-group-your-username-belongs-to> to list, create, update, delete and recover compartments in the tenancy.
    • Compartimento: <your-tenancy>(root)
  9. Per Costruzione guidata criteri, selezionare Mostra editor manuale.
  10. Incolla nel seguente criterio:
    allow group <a-group-your-username-belongs-to> to manage compartments in tenancy
  11. Selezionare Crea.

Riferimento: Dettagli per le combinazioni Verbi + Tipo di risorsa (vedere il tipo di risorsa compartments)

2. Crea script

Crea script per l'autenticazione, per creare un compartimento e per stampare gli output.

Aggiungere l'autenticazione
In primo luogo, impostare una directory per gli script Terraform. Quindi copiare il provider e gli script delle versioni dall'esercitazione Imposta Terraform OCI in modo che l'account Oracle Cloud Infrastructure possa autenticare gli script in esecuzione da questa directory.
  1. Nella directory $HOME creare una directory denominata tf-compartment e passare a tale directory.
    mkdir tf-compartment
    cd tf-compartment
  2. Copiare il file provider.tf nella directory tf-compartment.
    cp ../tf-provider/provider.tf .
  3. Copiare il file versions.tf nella directory tf-compartment.
    cp ../tf-provider/versions.tf .
Dichiara una risorsa compartimento

Dichiarare una risorsa compartimento Oracle Cloud Infrastructure, quindi definire le specifiche per il compartimento.

  1. Creare un file denominato compartment.tf.
  2. Aggiungere il codice seguente a compartment.tf.
    • Sostituire <tenancy-ocid> con le informazioni raccolte in Ottieni informazioni sulla tenancy.

      compartment_id è l'OCID per il compartimento padre. Utilizzare il compartimento radice come padre. L'OCID tenancy è l'OCID del compartimento per il compartimento radice.

    • Sostituire <your-compartment-name> con un nome a scelta.
    
    resource "oci_identity_compartment" "tf-compartment" {
        # Required
        compartment_id = "<tenancy-ocid>"
        description = "Compartment for Terraform resources."
        name = "<your-compartment-name>"
    }
  3. Salvare il file compartment.tf.
Spiegazione

In Terraform, le risorse sono oggetti come le reti cloud virtuali o le istanze di computazione. Puoi crearli, aggiornarli ed eliminarli con Terraform.

Per dichiarare una risorsa compartimento:

  1. Vai a Oracle Cloud Infrastructure Provider.
  2. Nella casella Filtro in alto a sinistra, immettere compartment.

    Vengono restituiti i risultati sia per le origini dati che per le risorse.

  3. In Identità, andare a Risorse e selezionare oci_identity_compartment.

    Il titolo della pagina è il tipo di risorsa: oci_identity_compartment

    Gli argomenti richiesti sono elencati nella sezione Riferimento argomento:

    • compartment_id
    • description
    • name
  4. Costruisce un blocco di risorse:
    • Dichiarare un blocco di risorse con la parola chiave: resource
    • Aggiungere un'etichetta per il tipo di risorsa: "oci_identity_compartment"
    • Aggiungere un'etichetta per un nome locale a scelta:
      • L'etichetta può contenere lettere, cifre, caratteri di sottolineatura (_) e trattini (-). Il primo carattere non deve essere una cifra.
      • Esempio: "tf-compartment"
    • All'interno del blocco di codice, fornire un valore per gli argomenti richiesti. Non hanno valori predefiniti.
    • Per gli argomenti facoltativi, fornire i valori per quelli che si desidera sostituire. In caso contrario, verranno utilizzati i relativi valori predefiniti.
Aggiungere output

Aggiungi blocchi di output al codice per ottenere informazioni sul compartimento dopo che Terraform ha creato il compartimento.

  1. Nella directory tf-compartment, creare un file denominato outputs.tf.
  2. Aggiungere il codice seguente a outputs.tf.
    # Outputs for compartment
    
    output "compartment-name" {
      value = oci_identity_compartment.tf-compartment.name
    }
    
    output "compartment-OCID" {
      value = oci_identity_compartment.tf-compartment.id
    }
  3. Salvare il file outputs.tf.
  4. Elencare tutti i file nella directory tf-compartment.
    ls

    Verificare che i seguenti file siano presenti nella stessa directory:

    • compartment.tf
    • outputs.tf
    • provider.tf
    • versions.tf
Spiegazione
  • Andare a Riferimento attributi (oci_identity_compartment).
    Nota

    Gli attributi sono gli output che è possibile restituire per la risorsa oci_identity_compartment.
  • Decidere quali attributi restituire.
  • Costruisce un blocco di output risorsa:
    • Dichiarare un blocco di output con la parola chiave: output
    • Aggiungere un'etichetta da stampare con i risultati dell'output:
      • L'etichetta può contenere lettere, cifre, caratteri di sottolineatura (_) e trattini (-). Il primo carattere non deve essere una cifra.
      • Esempio: "compartment-name"
    • All'interno del blocco di codice, immettere un valore per l'output della risorsa con l'espressione:
      • value = <type>.<local-name-for-resource>.<attribute>
      • Esempio: value = oci_identity_compartment.tf-compartment.id
    • Creare un blocco di output per ogni output.

3. Crea un compartimento

Eseguire gli script Terraform. Dopo che l'account ha autenticato gli script, Terraform crea un compartimento nella tenancy.

Inizializza
Inizializzare una directory di lavoro nella directory tf-compartment.
terraform init

Output di esempio:

Initializing the backend...

Initializing provider plugins...

Terraform has been successfully initialized!
Piano
Crea un piano di esecuzione per verificare se le modifiche mostrate nel piano di esecuzione corrispondono alle tue aspettative, senza modificare le risorse reali.
terraform plan

L'output previsto include la riga Plan: 1 to add, 0 to change, 0 to destroy.

Output di esempio:

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with
the following symbols:
  + create

Terraform will perform the following actions:

  # oci_identity_compartment.tf-compartment will be created
  + resource "oci_identity_compartment" "tf-compartment" {
      + compartment_id = "ocid1.tenancy.xxx"
      + defined_tags   = (known after apply)
      + description    = "Compartment for Terraform resources."
      + freeform_tags  = (known after apply)
      + id             = (known after apply)
      + inactive_state = (known after apply)
      + is_accessible  = (known after apply)
      + name           = "<your-compartment-name>"
      + state          = (known after apply)
      + time_created   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + compartment-OCID = (known after apply)
  + compartment-name = "<your-compartment-name>"
Applicazione
  1. Crea il tuo compartimento con Terraform:
    terraform apply

    Quando viene richiesta la conferma, immettere yes per la creazione della risorsa.

  2. (Facoltativo) Guarda la creazione dalla console:
    • Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Compartimenti.
    • Aggiornare la pagina fino a visualizzare il nome del compartimento.
    • Selezionare il nome del compartimento per visualizzarne i dettagli, ad esempio l'OCID.
  3. Nel terminale di output, esaminare gli output definiti.

    Output di esempio:

    oci_identity_compartment.tf-compartment: Creating...
    oci_identity_compartment.tf-compartment: Creation complete after 9s [id=xxx]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    
    Outputs:
    
    compartment-OCID = ocid1.compartment.xxx
    compartment-name = <your-compartment-name>

Complimenti. Connessione e creazione di un compartimento nella tenancy riuscite utilizzando il provider Terraform di Oracle Cloud Infrastructure.

Riferimenti: