Creare un'istanza di computazione

Utilizza Terraform per creare un'istanza di computazione nella tua tenancy Oracle Cloud Infrastructure.

I task chiave includono come:

  • Creare chiavi SSH.
  • Creare una rete cloud virtuale nella tenancy.
  • Utilizza il provider Terraform di Oracle Cloud Infrastructure per creare un'istanza di computazione nella rete.
  • Eseguire la connessione all'istanza.
Diagramma dei componenti necessari per creare un'istanza di computazione Oracle Cloud Infrastructure con Terraform. L'istanza di computazione viene creata in una subnet pubblica di una rete cloud virtuale. La subnet pubblica è connessa all'insternet tramite un gateway Internet.

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.

Informazioni preliminari

Per eseguire correttamente questa esercitazione, è necessario disporre dei seguenti elementi:

Requisiti

1. Prepara

Preparare l'ambiente per la creazione di un'istanza di calcolo. Inoltre, raccogliere tutte le informazioni necessarie per completare il tutorial.

Crea chiavi di cifratura SSH

Creare le chiavi di cifratura ssh per connettersi all'istanza di computazione.

  1. Aprire una finestra di terminale:
    • MacOS o Linux: aprire una finestra di terminale nella directory in cui si desidera memorizzare le chiavi.
    • Windows: fare clic con il pulsante destro del mouse sulla directory in cui si desidera memorizzare le chiavi e selezionare Git Bash qui.
    Nota

    Se si utilizza Windows Subsystem for Linux (WSL), assicurarsi che la directory per le chiavi sia direttamente sul computer Linux e non in una cartella /mnt (file system Windows).
  2. Eseguire il seguente comando OpenSSH:
    ssh-keygen -t rsa -N "" -b 2048 -C <your-ssh-key-name> -f <your-ssh-key-name>

    Il comando genera una grafica di testo casuale utilizzata per generare le chiavi. Al termine, sono disponibili due file:

    • Il file della chiave privata: <your-ssh-key-name>
    • Il file della chiave pubblica: <your-ssh-key-name>.pub

    Questi file vengono utilizzati per connettersi all'istanza di computazione.

Sono state generate le chiavi di cifratura richieste.

Per informazioni dettagliate sulla generazione delle chiavi di cifratura ssh, vedere Creazione di una coppia di chiavi.

Creare una rete VCN ( Virtual Cloud Network)
  1. Aprire il menu di navigazione , selezionare Networking, quindi selezionare Reti cloud virtuali.
  2. Nella pagina della lista Reti cloud virtuali, eseguire una delle azioni riportate di seguito a seconda dell'opzione visualizzata.

    • In Azioni, selezionare Avvia procedura guidata VCN.
    • Selezionare Avvia procedura guidata VCN.
  3. Nel pannello Avvia procedura guidata VCN, selezionare Crea VCN con connettività Internet.
  4. Selezionare Avvia procedura guidata VCN.

    Viene visualizzata la finestra Creare una VCN con connettività Internet.

1. Configurazione

Inserire le seguenti informazioni di base:

  • Nome VCN: <your-vcn-name>

  • Compartimento: <your-compartment-name>
Configura VCN
  • VCN IPv4 CIDR block: Keep the default value: 10.0.0.0/16

  • Usa nomi host DNS in questa VCN: deselezionare questa casella di controllo.

Configura subnet pubblica
  • Blocco CIDRIPv4 CIDR IPv4: mantenere il valore predefinito: 10.0.0.0/24

Configura subnet privata
  • Blocco CIDRIPv4 CIDR IPv4: mantenere il valore predefinito: 10.0.1.0/24

Si noti che le subnet pubbliche e private hanno indirizzi di rete diversi.

Selezionare Successivo. Viene visualizzata la pagina Rivedi e crea.

2. Rivedi e crea

Rivedere la configurazione completa della VCN, quindi selezionare Crea.

Le risorse vengono create e viene visualizzato un messaggio che indica che la creazione della VCN è stata completata.

Per visualizzare la VCN creata, selezionare Visualizza VCN.

Creazione di una VCN per ospitare l'istanza di computazione riuscita.

Raccogliere le informazioni necessarie

Raccogliere e copiare le informazioni necessarie nel blocco note.

  • Nome compartimento
  • ID compartimento
  • ID subnet
  • ID origine (immagine dell'istanza di computazione)
  • Forma (istanza di computazione)
  • Chiave autorizzata SSH (percorso chiave pubblica)
  • Percorso chiave SSH privata

Per istruzioni sulla raccolta di queste informazioni, vedere la tabella seguente.

Elemento Passi per raccogliere l'articolo
Nome compartimento Fare riferimento all'esercitazione completata Crea un compartimento.
ID compartimento
  1. Nella barra di ricerca della console, immettere <your-compartment-name>.
  2. Selezionare <your-compartment-name> nei risultati della ricerca.
  3. Selezionare Copia accanto all'OCID.
Nome visualizzato istanza Nome a scelta.
ID subnet
  1. Nella console: aprire il menu di navigazione , selezionare Networking, quindi selezionare Reti cloud virtuali.
  2. Selezionare <your-vcn-name> da Crea una rete cloud virtuale (VCN).
  3. Selezionare Subnet.
  4. Selezionare <your-compartment-name> per mostrare le subnet nel compartimento.
  5. Dal menu Azioni (tre puntini) per la subnet pubblica, selezionare Copia OCID.
ID origine (immagine dell'istanza di computazione)
  1. Nella barra di navigazione della console, individuare l'area.

    Vedere Uso delle aree.

  2. Passare a Note di rilascio immagine.
  3. Selezionare Ubuntu 24.04.

    Viene visualizzato l'elenco delle immagini per Ubuntu 24.04.

  4. Selezionare l'immagine più recente: Canonical-Ubuntu-24.04-<date>.

    La pagina elenca gli OCID immagine.

  5. Trovare l'immagine per la propria area e copiare l'OCID dell'immagine.

    Nota: assicurarsi di selezionare un OCID commerciale senza gov nel relativo OCID.

Forma e configurazione (istanza di computazione)
  • Forma: VM.Standard.E5.Flex
  • OCPU: 1
  • Memoria (GB): 12

Nota: VM.Standard.E5.Flex richiede valori per le OCPU e la memoria. Per selezionare una forma diversa, andare a Forme Virtual Machine (VM).

Chiave autorizzata SSH (percorso chiave pubblica) Fare riferimento alla sezione completata Create SSH Encryption Keys. Utilizzare questo percorso quando si imposta l'istanza di computazione.
Percorso chiave SSH privata Fare riferimento alla sezione completata Create SSH Encryption Keys. Utilizzare questa chiave privata quando ci si connette all'istanza di computazione.
Aggiungi criterio risorsa

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 all-resources in compartment <your-compartment-name>

Con questo privilegio, puoi gestire tutte le risorse nel tuo compartimento, concedendoti i diritti amministrativi in tale compartimento.

Passi per aggiungere il criterio
  1. Nella console: aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Criteri.
  2. Selezionare il compartimento.
  3. Selezionare Crea criterio.
  4. Nella pagina Crea criterio, immettere i valori riportati di seguito.
    • Nome: manage-<your-compartment-name>-resources
    • Descrizione: Allow users to list, create, update, and delete resources in <your-compartment-name>.
    • Compartimento: <your-tenancy>(root)
  5. In Costruzione guidata criteri, immettere i valori riportati di seguito.
    • Casi d'uso dei criteri: Compartment Management
    • Modelli di criteri comuni: Let compartment admins manage the compartment
    • Dominio di Identity: <identity-domain>
    • Gruppi: <a-group-your-username-belongs-to>
    • Posizione: <your-compartment-name>
  6. Selezionare Crea.

Riferimento: criteri comuni

2. Crea script

Crea script per l'autenticazione, il recupero dei dati, la creazione di un'istanza di computazione e la stampa degli 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-compute, quindi passare a tale directory.
    mkdir tf-compute
    cd tf-compute
  2. Copiare il file provider.tf nella directory tf-compute.
    cp ../tf-provider/provider.tf .
  3. Copiare il file versions.tf nella directory tf-compute.
    cp ../tf-provider/versions.tf .
Recupera dati

Recupera il nome di un dominio di disponibilità dal tuo account. Un dominio di disponibilità è uno degli input necessari per creare un'istanza di computazione.

  1. Copiare il file availability-domains.tf nella directory tf-compute.

    Il file availability-domains.tf è stato creato durante l'esercitazione Imposta Terraform OCI.

    cp ../tf-provider/availability-domains.tf .

    Codice di esempio:

    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/identity_availability_domains
    
    data "oci_identity_availability_domains" "ads" {
      compartment_id = "<tenancy-ocid>"
    }
  2. Nella directory tf-compute, creare un file denominato outputs.tf.
    Nota

    Assicurarsi che outputs.tf, provider.tf e availability-domains.tf si trovino nella stessa directory.
  3. Per eseguire l'output del nome del primo dominio di disponibilità nella lista oci_identity_availability_domains, aggiungere il codice seguente a outputs.tf.
    
    # The "name" of the availability domain to be used for the compute instance.
    output "name-of-first-availability-domain" {
      value = data.oci_identity_availability_domains.ads.availability_domains[0].name
    }
  4. Salvare il file outputs.tf.
  5. Eseguire gli script con Terraform:
    terraform init
    terraform plan
    terraform apply

    Quando viene richiesta la conferma, immettere yes per il recupero e la visualizzazione dei dati nell'output.

    Ora si dispone di un output con il nome del dominio di disponibilità da utilizzare per l'istanza.

    Output di esempio:

    name-of-first-availability-domain = QnsC:US-ASHBURN-AD-1
Complimenti. Recupero dei dati dall'account Oracle Cloud Infrastructure da utilizzare per l'istanza di computazione riuscito.
Spiegazione

Quando si imposta Terraform nella prima esercitazione, Imposta Terraform OCI, il blocco di output includeva la riga seguente:

value = data.oci_identity_availability_domains.ads.availability_domains

Quindi, l'output era simile al seguente:

Outputs:

all-availability-domains-in-your-tenancy = tolist([
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-1"
  },
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-2"
  },
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-3"
  },
])

Ora, desideri recuperare il nome del primo dominio di disponibilità nella lista e utilizzarlo per la posizione dell'istanza di computazione in un secondo momento:

"name" = "xxxx:US-ASHBURN-AD-1"
Nota

  • Utilizzare le parentesi quadre per aggiungere un indice a un attributo elenco.
  • Utilizzare l'indice 0 per il primo elemento di un elenco.
  • Utilizzare un punto dopo le parentesi quadre seguite da un attributo dell'elenco per specificare tale attributo.
  • Esempio: primo elemento dell'elenco:

    value = data.oci_identity_availability_domains.ads.availability_domains[0]

  • Esempio: nome del primo elemento nell'elenco:

    value = data.oci_identity_availability_domains.ads.availability_domains[0].name

Dichiara una risorsa di computazione

Dichiara una risorsa di computazione Oracle Cloud Infrastructure, quindi definisci le specifiche per l'istanza.

Suggerimento

È possibile salvare uno stack dal workflow della console per creare un'istanza di computazione. Lo stack contiene una configurazione Terraform che è possibile utilizzare come riferimento per la configurazione della forma e della forma. Vedere Creazione di uno stack da una pagina di creazione delle risorse e Recupero della configurazione Terraform di uno stack.
  1. Creare un file denominato compute.tf.
  2. Aggiungere il codice seguente a compute.tf.
    resource "oci_core_instance" "ubuntu_instance" {
        # Required
        availability_domain = data.oci_identity_availability_domains.ads.availability_domains[0].name
        compartment_id = "<compartment-ocid>"
        shape = "VM.Standard.E5.Flex"
        shape_config {
            ocpus = "1"
            memory_in_gbs = "12"
        }
        source_details {
            source_id = "<source-ocid>"
            source_type = "image"
        }
    
        # Optional
        display_name = "<your-ubuntu-instance-name>"
        create_vnic_details {
            assign_public_ip = true
            subnet_id = "<subnet-ocid>"
        }
        metadata = {
            ssh_authorized_keys = file("<ssh-public-key-path>")
        } 
        preserve_boot_volume = false
    }
    Importante

    • Sostituire <compartment-ocid>, <source-ocid>, <your-ubuntu-instance-name> e <subnet-ocid> con le informazioni raccolte in Raccogli informazioni richieste.
    • Per il dominio di disponibilità, utilizzare il nome recuperato con l'origine dati:
      data.oci_identity_availability_domains.ads.availability_domains[0].name
    • Per ssh_authorized_keys, utilizzare il seguente formato:
      file("<ssh-public-key-path>")

      Non è possibile modificarne il valore dopo aver creato la VM.

  3. Salvare il file compute.tf.
Spiegazione

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

Per dichiarare una risorsa di computazione:

  • Vai a Oracle Cloud Infrastructure Provider.
  • Nella casella Filtro in alto a sinistra, immettere core instance.

    I risultati includono le origini dati e le risorse per diversi servizi.

  • In Core, andare a Resources e selezionare oci_core_instance.

    Il titolo della pagina è il tipo di risorsa: oci_core_instance

  • Nella sezione Riferimento argomento, utilizzare i seguenti argomenti obbligatori (input):
    • availability_domain
    • compartment_id
    • forma
    • source_details
      • source_id
      • source_type
  • Costruisce un blocco di risorse:
    • Dichiarare un blocco di risorse con la parola chiave: resource
    • Aggiungere un'etichetta per il tipo di risorsa: "oci_core_instance"
    • 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: "ubuntu_instance"
    • All'interno del blocco di codice, fornire un valore per gli argomenti richiesti. Non hanno un valore predefinito.
    • 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 sull'istanza di computazione dopo che Terraform l'ha creata.

  1. Aprire il file outputs.tf.
  2. Creare un blocco di output per l'IP pubblico dell'istanza:
    • L'IP pubblico è disponibile dopo la creazione dell'istanza.
    • Utilizzare l'IP pubblico per connettersi all'istanza.
    • Aggiungere il codice seguente a outputs.tf:
    # Outputs for compute instance
    
    output "public-ip-for-compute-instance" {
      value = oci_core_instance.ubuntu_instance.public_ip
    }
  3. Aggiungere altri output per descrivere l'istanza di computazione:
    • display_name
    • ID
    • area
    • forma
    • stato
    • ocpus
    • memory_in_gbs
    • time_created
    
    output "instance-name" {
      value = oci_core_instance.ubuntu_instance.display_name
    }
    
    output "instance-OCID" {
      value = oci_core_instance.ubuntu_instance.id
    }
    
    output "instance-region" {
      value = oci_core_instance.ubuntu_instance.region
    }
    
    output "instance-shape" {
      value = oci_core_instance.ubuntu_instance.shape
    }
    
    output "instance-state" {
      value = oci_core_instance.ubuntu_instance.state
    }
    
    output "instance-OCPUs" {
      value = oci_core_instance.ubuntu_instance.shape_config[0].ocpus
    }
    
    output "instance-memory-in-GBs" {
      value = oci_core_instance.ubuntu_instance.shape_config[0].memory_in_gbs
    }
    
    output "time-created" {
      value = oci_core_instance.ubuntu_instance.time_created
    }
  4. Salvare il file outputs.tf.
Spiegazione
  • Andare a Riferimento attributi (oci_core_instance).
    Nota

    Gli attributi sono gli output che è possibile restituire per la risorsa oci_core_instance.
  • Cercare l'attributo per l'IP pubblico: public_ip.
  • Costruisce un blocco di output della risorsa per public_ip:
    • Per l'espressione di valore, utilizzare il seguente formato:
      • value = <type>.<local-name-for-resource>.<attribute>
      • Esempio: value = oci_core_instance.ubuntu_instance.public_ip
  • Creare un blocco di output per ognuno dei seguenti output:
    • display_name
    • ID
    • area
    • forma
    • stato
    • ocpus
    • memory_in_gbs
    • time_created

3. Esegui script

Eseguire gli script Terraform per creare l'istanza di computazione in un compartimento della tenancy. Utilizzare le chiavi SSH per connettersi all'istanza. Quando non hai più bisogno della tua istanza, distruggila con Terraform.

Crea un'istanza
  1. Creare l'istanza di computazione con Terraform:
    terraform init
    terraform plan
    terraform apply

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

    Dopo la creazione dell'istanza, gli output definiti, incluso <your-public-ip-address>, vengono visualizzati nel terminale di output.
  2. (Facoltativo) Guardare la creazione dell'istanza dalla console.
    • Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
    • Selezionare il compartimento.
    • Guarda la visualizzazione dell'istanza nella lista delle istanze.

Complimenti. Creazione di un'istanza di computazione mediante Terraform riuscita nell'account Oracle Cloud Infrastructure.

Riferimenti:

Connessione all'istanza
  1. Dal terminale, immettere gli output per l'istanza di computazione:
    terraform output
  2. Copiare l'indirizzo IP pubblico dagli output.
  3. Dal computer Linux, connettersi alla VM con questo comando ssh:
    ssh -i <ssh-private-key-path> ubuntu@<your-public-ip-address>
    Nota

    Assicurarsi che la chiave privata si trovi direttamente sul computer Linux (WSL).
  4. Disconnettersi dall'istanza:
    exit
Elimina l'istanza
  1. (Facoltativo) Dopo che l'istanza di computazione non è più necessaria, è possibile arrestarla con il seguente comando:
    terraform destroy

    Quando viene richiesto di confermare, immettere yes.

  2. (Facoltativo) Guardare l'interruzione dalla console:
    • Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
    • Selezionare il compartimento.
    • Controllare la modifica dello stato dell'istanza in Cessazione, quindi in Terminato.