Introduzione
Questo esempio fornisce una panoramica end-to-end dei task necessari per creare e distribuire un'istanza di computazione Oracle Cloud Infrastructure utilizzando Resource Manager.
Questa pagina consente di iniziare a utilizzare Resource Manager. Utilizza questa procedura guidata end-to-end per creare e distribuire un'istanza di computazione Oracle Cloud Infrastructure utilizzando una configurazione Terraform predefinita o la tua configurazione Terraform. Per una breve introduzione a Resource Manager, vedere Panoramica di Resource Manager.
Evidenziazioni
Oltre a fornire una configurazione Terraform predefinita per la creazione di un'istanza di computazione, questa procedura guidata fornisce esempi che dimostrano come scrivere una configurazione Terraform. Indipendentemente dalla configurazione utilizzata (pregenerata o personalizzata), Resource Manager utilizza Terraform per eseguire il provisioning delle risorse definite. Le risorse sono organizzate in stack, di cui è possibile creare ed eseguire il provisioning utilizzando i job.
Nella procedura guidata sono descritti i task riportati di seguito.
- Selezionare o creare una configurazione Terraform.
- Fornitura dell'infrastruttura:
- Crea uno stack in cui eseguire il provisioning dell'infrastruttura.
- Eseguire un job del piano nello stack, che analizza la configurazione e crea un piano di esecuzione.
- Rivedere il piano di esecuzione generato.
- Esegui un job di applicazione sul tuo stack, che esegue il provisioning delle tue risorse. Il job di applicazione segue il piano di esecuzione, che si basa sulla configurazione Terraform.
- Esaminare l'infrastruttura risultante.
- Facoltativamente, è possibile eseguire il provisioning dell'infrastruttura in più ambienti utilizzando la stessa configurazione Terraform.
Informazioni preliminari
Assicurarsi di aver installato, ottenuto o creato i prerequisiti:
- Una tenancy Oracle Cloud Infrastructure per ogni ambiente in cui si desidera eseguire il provisioning delle risorse. Ad esempio, è possibile eseguire il provisioning delle risorse definite in una configurazione Terraform per gli ambienti di sviluppo, staging e produzione.Nota
È consigliabile individuare ogni ambiente nella propria tenancy. - L'OCID per il compartimento in cui si desidera creare lo stack.
- Account utente che include i seguenti elementi:
- Una chiave di firma API. Per istruzioni, vedere Chiavi e OCID obbligatori.
- Autorizzazioni IAM obbligatorie. Per ulteriori informazioni, vedere Panoramica sui criteri IAM e Dettagli per Resource Manager.
- Se si desidera utilizzare l'interfaccia CLI di Oracle Cloud Infrastructure, installare e configurare prima l'interfaccia CLI. Vedere Quickstart e Configurazione dell'interfaccia CLI
Task 1a: selezionare una configurazione Terraform predefinita
Puoi selezionare il modello dell'istanza di computazione con la relativa configurazione Terraform predefinita invece di scrivere la tua configurazione. Questi passaggi ti guidano attraverso il processo di creazione dello stack.
- Selezionare il collegamento seguente per avviare la pagina Crea stack con il modello di istanza di computazione già selezionato.
- Nella pagina Crea stack, immettere un nome per il nuovo stack o accettare il nome predefinito fornito. Evitare di inserire informazioni riservate.
-
Nell'elenco a discesa Crea nel compartimento selezionare il compartimento in cui si desidera creare lo stack.
Per impostazione predefinita, viene impostato un compartimento dall'ambito della lista.
-
Selezionare Successivo.
Nel pannello Configura variabili vengono visualizzate le variabili della configurazione Terraform.
-
Rivedere le variabili e apportare le modifiche necessarie.
Importante
Non aggiungere la chiave privata o altre informazioni riservate alle variabili di configurazione. - Selezionare Successivo.
- Nel pannello Rivedi verificare la configurazione dello stack.
Ai fini di questa procedura guidata, lasciare vuoto il campo Esegui applicazione. Utilizzare questa opzione per eseguire automaticamente il provisioning dell'infrastruttura quando viene creato lo stack.
- Selezionare Crea per creare lo stack.
Viene visualizzata la pagina dei dettagli dello stack per il nuovo stack.
Complimenti. È stato creato uno stack con la configurazione Terraform predefinita dal modello di istanza di computazione. Il passo successivo è eseguire il provisioning dell'infrastruttura.
Task 1b: Creare la propria configurazione Terraform
Se non è stata selezionata una configurazione Terraform predefinita, attenersi alla procedura riportata di seguito per scrivere la propria.
Una configurazione Terraform è un file che codifica l'infrastruttura. La configurazione definisce il provider Terraform, le risorse di cui si intende eseguire il provisioning, le variabili e le istruzioni specifiche per il provisioning delle risorse.
Questa pagina assiste l'utente nella selezione del modello dell'istanza di computazione con la configurazione Terraform predefinita o, in alternativa, nella scrittura della propria configurazione utilizzando diversi file .tf all'interno di un file .zip.
Per ulteriori informazioni sulla scrittura delle configurazioni da utilizzare con Resource Manager, vedere Configurazioni Terraform per Resource Manager e Documentazione di Terraform Language.
Non fornire le credenziali utente o altre informazioni riservate nella configurazione Terraform.
L'esempio di codice riportato di seguito crea un provider Terraform di base di Oracle Cloud Infrastructure. È possibile fornire valori come variabili definite in un file di variabili o nel file di definizione del provider (.tf). Per ulteriori informazioni, vedere Configurazione del provider.
provider "oci" {
region = "${var.region}"
}
Definire le variabili che si desidera utilizzare durante il provisioning delle risorse. Si consiglia di creare un file "variabili" nel package di configurazione caricato. Di seguito è riportato un esempio di file di configurazione denominato variables.tf
. Per ulteriori informazioni sull'utilizzo delle variabili, vedere Definire le variabili di input. Vedere anche Variabili di input.
variable "compartment_ocid" {
default = "ocid1.compartment.oc1..uniqueid"
}
variable "region" {
default = "us-phoenix-1"
}
variable "InstanceImageOCID" {
type = "map"
default = {
// See https://docs.cloud.oracle.com/images/
// Platform image "Oracle-Linux-7.5-2018.10.16-0"
"eu-frankfurt-1" = "ocid1.image.oc1.eu-frankfurt-1.aaaaaaaaitzn6tdyjer7jl34h2ujz74jwy5nkbukbh55ekp6oyzwrtfa4zma"
"uk-london-1" = "ocid1.image.oc1.uk-london-1.aaaaaaaa32voyikkkzfxyo4xbdmadc2dmvorfxxgdhpnk6dw64fa3l4jh7wa"
"us-ashburn-1" = "ocid1.image.oc1.iad.aaaaaaaageeenzyuxgia726xur4ztaoxbxyjlxogdhreu3ngfj2gji3bayda"
"us-phoenix-1" = "ocid1.image.oc1.phx.aaaaaaaaoqj42sokaoh42l76wsyhn3k2beuntrh5maj3gmgmzeyr55zzrwwa"
}
}
variable "ssh_public_key" {
default = "ssh-rsa <public_key_value>"
}
# Defines the number of instances to deploy
variable "NumInstances" {
default = "1"
}
variable "InstanceShape" {
default = "VM.Standard2.1"
}
# Specifies the Availability Domain
variable "localAD" {
default = "<AD_name>"
}
Per ulteriori informazioni sulle variabili dichiarate negli esempi precedenti, vedere:
InstanceImageOCID
: Immagini di piattaformaInstanceShape
: Forme di computazioneregion
elocalAD
: aree e domini di disponibilità
Con un documento di schema, è possibile riutilizzare una configurazione Terraform non modificata in ambienti di sviluppo, staging e produzione. Resource Manager richiede i valori delle variabili quando si crea uno stack con una configurazione Terraform che include un documento di schema.
I documenti di schema sono consigliati per le configurazioni Terraform quando si utilizza Resource Manager. L'inclusione di un documento di schema consente di estendere le pagine nella console di Oracle Cloud Infrastructure. Facilita l'inserimento delle variabili nella pagina Crea stack visualizzando i controlli delle chiavi SSH e denominando, raggruppando, prepopolando dinamicamente i valori e altro ancora. Definire il testo nella scheda Informazioni applicazione della pagina Dettagli stack visualizzata per uno stack creato.
Di seguito sono riportati i contenuti di un documento di schema di esempio (schema.yaml
) che illustra i dettagli di base di questo scenario.
Per riutilizzare facilmente questo documento di schema, specificare i valori predefiniti per ogni variabile.
locale: "en"
variableGroups:
- title: "Destination"
variables:
- compartment_ocid
- ${region}
- ${localAD}
- title: "Instance Details"
variables:
- ${numInstances}
- ${instanceImageOCID}
- ${instanceShape}
- title: "SSH Public Key"
variables:
- ${ssh_public_key}
variables:
compartment_ocid:
type: oci:identity:compartment:id
required: true
title: Compartment OCID
region:
type: oci:identity:region:name
required: true
title: Region
localAD:
type: oci:identity:availabilitydomain:name
required: true
title: Availability Domain
dependsOn:
compartmentId: compartment_ocid
numInstances:
type: integer
required: true
title: Number of Instances
minimum: 1
maximum: 10
multipleOf: 1
instanceImageOCID:
type: oci:core:image:id
required: true
title: Instance Image OCID
dependsOn:
compartmentId: compartment_ocid
instanceShape:
type: oci:core:instanceshape:name
required: true
title: Instance Shape
default: "VM.Standard.E2.1.Micro"
dependsOn:
compartmentId: compartment_ocid
ssh_public_key:
type: oci:core:ssh:publickey
required: true
title: SSH Public Key
L'esempio di codice seguente crea una rete cloud virtuale (VCN) Oracle Cloud Infrastructure denominata "ExampleVCN".
resource "oci_core_virtual_network" "ExampleVCN" {
cidr_block = "10.1.0.0/16"
compartment_id = "${var.compartment_ocid}"
display_name = "TFExampleVCN"
dns_label = "tfexamplevcn"
}
L'esempio di codice seguente crea una subnet denominata "ExampleSubnet" nella VCN definita nell'esempio di codice precedente.
resource "oci_core_subnet" "ExampleSubnet" {
availability_domain = "${var.localAD}"
cidr_block = "10.1.20.0/24"
display_name = "TFExampleSubnet"
dns_label = "tfexamplesubnet"
security_list_ids = ["${oci_core_virtual_network.ExampleVCN.default_security_list_id}"]
compartment_id = "${var.compartment_ocid}"
vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
route_table_id = "${oci_core_route_table.ExampleRT.id}"
dhcp_options_id = "${oci_core_virtual_network.ExampleVCN.default_dhcp_options_id}"
}
L'esempio di codice riportato di seguito crea un gateway Internet denominato "ExampleIG" nella VCN creata.
resource "oci_core_internet_gateway" "ExampleIG" {
compartment_id = "${var.compartment_ocid}"
display_name = "TFExampleIG"
vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
}
L'esempio di codice riportato di seguito crea una tabella di instradamento principale di Oracle Cloud Infrastructure nella VCN e quindi applica due regole di instradamento.
resource "oci_core_route_table" "ExampleRT" {
compartment_id = "${var.compartment_ocid}"
vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
display_name = "TFExampleRouteTable"
route_rules {
cidr_block = "0.0.0.0/0"
network_entity_id = "${oci_core_internet_gateway.ExampleIG.id}"
}
}
Il seguente esempio di codice esteso crea un'istanza di computazione Oracle Cloud Infrastructure. Il codice fa riferimento anche all'immagine in cui viene creata l'istanza di computazione, imposta la dimensione del volume di avvio, aggiunge metadati essenziali e applica tag sia in formato libero che definite.
resource "oci_core_instance" "TFInstance" {
count = "${var.NumInstances}"
availability_domain = "${var.localAD}"
compartment_id = "${var.compartment_ocid}"
display_name = "TFInstance${count.index}"
shape = "${var.InstanceShape}"
create_vnic_details {
subnet_id = "${oci_core_subnet.ExampleSubnet.id}"
display_name = "primaryvnic"
assign_public_ip = true
hostname_label = "tfexampleinstance${count.index}"
}
source_details {
source_type = "image"
source_id = "${var.InstanceImageOCID[var.region]}"
# Apply this to set the size of the boot volume that's created for this instance.
# Otherwise, the default boot volume size of the image is used.
# This should only be specified when source_type is set to "image".
#boot_volume_size_in_gbs = "60"
}
# Apply the following flag only if you wish to preserve the attached boot volume upon destroying this instance
# Setting this and destroying the instance will result in a boot volume that should be managed outside of this config.
# When changing this value, make sure to run 'terraform apply' so that it takes effect before the resource is destroyed.
#preserve_boot_volume = true
metadata = {
ssh_authorized_keys = "${var.ssh_public_key}"
}
timeouts {
create = "60m"
}
}
Verificare che tutti i file di configurazione si trovino in una singola directory. È possibile memorizzare il file di configurazione Terraform in locale o in un sistema di controllo del codice sorgente. Per ulteriori informazioni sulla memorizzazione del file in un sistema di controllo del codice sorgente, vedere Gestione dei provider di origine della configurazione. Ovunque il file sia memorizzato, è possibile selezionarlo quando si crea uno stack utilizzando l'interfaccia CLI o la console.
Assicurarsi che il file di configurazione Terraform sia valido. Vedere Creazione delle configurazioni e Configurazioni Terraform per Resource Manager.
Task 2: Provisioning dell'infrastruttura
Utilizzare la configurazione Terraform per creare e distribuire l'infrastruttura effettuando le azioni riportate di seguito.
-
Se hai creato la tua configurazione Terraform, segui questi passi per creare uno stack in un compartimento della tenancy di tua scelta. Se è stata selezionata una configurazione predefinita, saltare questo passaggio.
Per le origini di configurazione Terraform supportate con Resource Manager, vedere Dove memorizzare le configurazioni Terraform.
Uno stack è una raccolta di risorse su cui è possibile agire come gruppo. Tutte le risorse specificate nella configurazione vengono sottoposte a provisioning nello stack creato.
È possibile creare uno stack da un file remoto con controllo delle versioni in un sistema di controllo del codice sorgente, ad esempio Git, un bucket di storage degli oggetti o un file .zip con accesso locale caricato. Di seguito sono riportate le istruzioni per un file locale.
Per creare uno stack dal file .zip (console)- Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Stack.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare Crea stack.
Viene visualizzata la pagina Crea stack, con la scheda Informazioni sullo stack selezionata.
-
Nella pagina Crea stack, in Scegliere l'origine della configurazione Terraform, selezionare Configurazione personale.
-
In Configurazione dello stack, selezionare .Zip file e aggiungere la configurazione Terraform.
È possibile trascinare il file .zip di configurazione Terraform nel controllo oppure selezionare Sfoglia e passare alla posizione del file .zip.
È inoltre possibile memorizzare la configurazione in remoto. Ad esempio, memorizzare la configurazione in Git o in un bucket di storage degli oggetti.
La pagina viene popolata con le informazioni contenute nella configurazione Terraform.
- Immettere i valori per i campi rimanenti.
Nome descrizione; Utilizza provider personalizzati Selezionare questa opzione per utilizzare i provider personalizzati, quindi selezionare il bucket che contiene i provider personalizzati. Nome Nome stack. È possibile accettare il nome predefinito fornito. Evitare di inserire informazioni riservate. descrizione; Descrizione dello stack (opzionale). Crea nel compartimento Compartimento in cui creare lo stack. Per impostazione predefinita, viene impostato un compartimento dall'ambito della lista. Versione di Terraform Versione desiderata per la configurazione Terraform. Tag È possibile applicare le tag allo stack. -
Selezionare Successivo.
Nel pannello Configura variabili sono elencate le variabili della configurazione Terraform.
Esaminare le variabili e modificarle in base alle esigenze.
Non aggiungere la chiave privata o altre informazioni riservate alle variabili di configurazione.-
Selezionare Successivo.
-
Nel pannello Revisione verificare la configurazione dello stack.
-
Per eseguire automaticamente il provisioning delle risorse alla creazione dello stack, selezionare Esegui applicazione.
-
Selezionare Crea per creare lo stack.
Lo stack viene creato e viene visualizzata la relativa pagina dei dettagli.
Se è stata selezionata l'opzione Esegui applicazione, Resource Manager esegue l'azione di applicazione sul nuovo stack.
Per creare uno stack dal file .zip (CLI)Utilizzare il comando relativo alla posizione del file.
Per creare uno stack da un file remoto con controllo delle versioniUtilizzare il comando
oci resource-manager stack create-from-git-provider
e i parametri richiesti per creare uno stack da Git.oci resource-manager stack create-from-git-provider [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Richiesta di esempiooci resource-manager stack create-from-git-provider --compartment-id ocid1.tenancy.oc1..uniqueid --config-source-configuration-source-provider-id ocid.ormconfigsourceprovider.oc1..uniqueid --config-source-repository-url https://github.com/user/repo.git --config-source-branch-name mybranch --display-name "My Stack from Git" --description "My Test" --variables file://variables.json --working-directory ""
Per creare uno stack dal file .zipNota
In Windows, assicurarsi che il file zip e i file variables.json si trovino nella stessa directory da cui si esegue l'interfaccia CLI. La CLI ha attualmente una limitazione su Windows che impedisce la corretta gestione dei file se uno dei due si trova in una sottodirectory.Utilizzare il comando
oci resource-manager stack create
e i parametri richiesti per creare uno stack da un file zip locale.oci resource-manager stack create [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Richiesta di esempiooci resource-manager stack create --compartment-id ocid1.tenancy.oc1..uniqueid --config-source vcn.zip --variables file://variables.json --display-name "My Example Stack" --description "My Tutorial to Create a VCN" --working-directory ""
Risposta di esempio{ "data": { config-source": { "working-directory": null, "config-source-type": "ZIP_UPLOAD" }, "defined-tags": {}, "description": "My Tutorial to Create a VCN", "display-name": "My Example Stack", "freeform-tags": {}, "id": "ocid1.ormstack.oc1..uniqueid", "lifecycle-state": "ACTIVE", "time-created": "2019-04-03T18:26:56.299000+00:00", "variables": { "compartment_ocid": "ocid1.compartment.oc1..uniqueid", "region": "us-phoenix-1" } } }
-
Generare un piano di esecuzione.
Il job del piano analizza la configurazione per creare un "piano di esecuzione", ovvero una rappresentazione dettagliata della distribuzione pianificata nelle voci del log dei job. Una volta completato il job del piano, è possibile valutare il piano di esecuzione visualizzando le voci di log del job per confermare che esegue le operazioni previste e nella sequenza desiderata.
Nota
È possibile saltare questo passo se è stata selezionata l'opzione Esegui applicazione quando si creò lo stack. In questo caso, il provisioning delle risorse è già stato eseguito.Per eseguire un job del piano (console)- Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Stack.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare il nome dello stack desiderato.
Viene visualizzata la pagina Dettagli stack.
-
Selezionare Piano.
-
Nel pannello Piano, rivedere il nome e, facoltativamente, modificarlo.
-
Selezionare Piano.
Il processo del piano è stato creato. Il nuovo job viene elencato in Job.
Monitorare lo stato del job (stato del ciclo di vita) ottenendo i dettagli del job. Riuscito (
SUCCEEDED
) indica che il job è stato completato. A seconda della complessità del job, l'operazione può richiedere del tempo. Al termine o durante l'esecuzione del job, è possibile ottenere il contenuto dei log dei job.
Per eseguire un job del piano (CLI, Plan Job)Utilizzare il comando
oci resource-manager job create-plan-job
e i parametri richiesti per eseguire un job del piano.oci resource-manager job create-plan-job [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Monitorare lo stato del job (stato del ciclo di vita) ottenendo i dettagli del job. Riuscito (
SUCCEEDED
) indica che il job è stato completato. A seconda della complessità del job, l'operazione può richiedere del tempo. Al termine o durante l'esecuzione del job, è possibile ottenere il contenuto dei log dei job. -
Rivedere il piano di esecuzione per confermare che rappresenta le intenzioni.
Il piano di esecuzione viene rappresentato nel log del job del piano eseguito in precedenza.
Nota
È possibile saltare questo passo se è stata selezionata l'opzione Esegui applicazione quando si creò lo stack. In questo caso, il provisioning delle risorse è già stato eseguito.Per esaminare un piano di esecuzione (il log per il job di piano) (Console)-
Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Job.
È possibile accedere ai job anche da una pagina dei dettagli dello stack. Selezionare Stack, quindi selezionare il nome dello stack desiderato.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare il nome del job del piano eseguito.
Si apre la pagina Dettagli job. I log sono visibili (nella sezione Logs in Resources).
Per i job del piano, il file di log è il piano di esecuzione. Visualizzare il file di log per il job del piano e annotare i campi "messaggio" nella sequenza di voci di log del file di log. Questi valori rappresentano la sequenza di operazioni specificate nella configurazione.
-
(Facoltativo) Selezionare Scarica log (nella sezione Log in Risorse).
Se sono necessarie modifiche, aggiornare lo stack per utilizzare una configurazione rivista, quindi eseguire un altro job del piano per ottenere un piano di esecuzione aggiornato.
Per esaminare un piano di esecuzione (il log per il job del piano) (CLI, Execution Plan Job)Utilizzare il comando
oci resource-manager job get-job-logs
e i parametri richiesti per ottenere i log di un job come lista di voci di paging.oci resource-manager job get-job-logs [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Risposta di esempio per un job pianoIl comando restituisce oggetti JSON che descrivono le voci di log. Ogni oggetto ha un membro messaggio con una proprietà che visualizza una riga del piano di esecuzione. In questo esempio, il job del piano crea una singola rete cloud virtuale (VCN). I membri rimanenti mostrano i dettagli sulla VCN.
... { "level": "INFO", "message": "Terraform will perform the following actions:", "timestamp": "2018-05-24T00:57:14.170000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "", "timestamp": "2018-05-24T00:57:14.170000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "+ oci_core_virtual_network.vcn1", "timestamp": "2018-05-24T00:57:14.170000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "id: <computed>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "cidr_block: \"10.0.0.0/16\", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "compartment_id: \"ocid1.tenancy.oc1..exampleaqnpcpfqfmrf6dw5gcew7yqpirvarueirj2mv4jzn5goejsxma\", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "default_dhcp_options_id: <computed_value>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": " default_route_table_id: <computed_value>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": " default_security_list_id: <computed_value>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, ...
Se sono necessarie modifiche, aggiornare lo stack per utilizzare una configurazione rivista, quindi eseguire un altro job del piano per ottenere un piano di esecuzione aggiornato.
-
-
Eseguire il provisioning delle risorse eseguendo un job di applicazione a fronte del piano di esecuzione.
Una volta soddisfatto del piano di esecuzione, sei pronto per eseguire il provisioning dello stack con le risorse definite. Il job di applicazione accetta il piano di esecuzione e lo "applica" allo stack. Il risultato è uno stack con provisioning completo.
Nota
È possibile saltare questo passo se è stata selezionata l'opzione Esegui applicazione quando si creò lo stack. In questo caso, il provisioning delle risorse è già stato eseguito.Per eseguire un job di applicazione (console)-
Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Stack.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare il nome dello stack creato.
Viene visualizzata la pagina Dettagli stack.
-
Selezionare Applica.
-
(Facoltativo) Nel pannello Applica, rivedere il nome e le altre impostazioni del job di applicazione e, se necessario, aggiornarlo.
-
Selezionare Applica.
Il job di applicazione è stato creato. Il nuovo job viene elencato in Job.
Monitorare lo stato del job (stato del ciclo di vita) ottenendo i dettagli del job. Riuscito (
SUCCEEDED
) indica che il job è stato completato. A seconda della complessità del job, l'operazione può richiedere del tempo. Al termine o durante l'esecuzione del job, è possibile ottenere il contenuto dei log dei job.Per confermare l'esistenza delle nuove risorse di cui è stato eseguito il provisioning, ispezionare le risorse nel compartimento.
Per eseguire un job di applicazione (CLI, Apply Job)Utilizzare il comando
oci resource-manager job create-apply-job
e i parametri richiesti per eseguire un job di applicazione.oci resource-manager job create-apply-job [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
EsempiEsempio 1: fare riferimento a un job del piano.
oci resource-manager job create-apply-job --execution-plan-strategy <plan_job_ocid> --stack-id <stack_ocid>
Esempio 2: approvazione automatica (non fare riferimento a un job del piano).
oci resource-manager job create-apply-job --execution-plan-strategy AUTO_APPROVED --stack-id <stack_ocid>
Monitorare lo stato del job (stato del ciclo di vita) ottenendo i dettagli del job. Riuscito (
SUCCEEDED
) indica che il job è stato completato. A seconda della complessità del job, l'operazione può richiedere del tempo. Al termine o durante l'esecuzione del job, è possibile ottenere il contenuto dei log dei job.Per confermare l'esistenza delle nuove risorse di cui è stato eseguito il provisioning, ispezionare le risorse nel compartimento.
-
- Esaminare le voci di log e il file di stato per il job di applicazione appena eseguito.
Per ulteriori dettagli sul job, vedere le voci nel log dei job.
Per visualizzare il job log (console)-
Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Job.
È possibile accedere ai job anche da una pagina dei dettagli dello stack. Selezionare Stack, quindi selezionare il nome dello stack desiderato.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare il nome del job di applicazione eseguito.
Si apre la pagina Dettagli job. I log sono visibili (nella sezione Logs in Resources).
-
(Facoltativo) Selezionare Scarica log (nella sezione Log in Risorse).
Per visualizzare il job log (CLI, Job Log)Visualizzare il file di log e annotare i campi "messaggio" nella sequenza di voci di log del file di log. È possibile visualizzare il file di log per il job specificato come lista di voci con paging o in formato raw.
Per visualizzare un elenco di voci con pagingUtilizzare il comando
oci resource-manager job get-job-logs
e i parametri richiesti per ottenere i log di un job come lista di voci di paging.oci resource-manager job get-job-logs [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Risposta di esempio per un job pianoIl comando restituisce oggetti JSON che descrivono le voci di log. Ogni oggetto ha un membro messaggio con una proprietà che visualizza una riga del piano di esecuzione. In questo esempio, il job del piano crea una singola rete cloud virtuale (VCN). I membri rimanenti mostrano i dettagli sulla VCN.
... { "level": "INFO", "message": "Terraform will perform the following actions:", "timestamp": "2018-05-24T00:57:14.170000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "", "timestamp": "2018-05-24T00:57:14.170000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "+ oci_core_virtual_network.vcn1", "timestamp": "2018-05-24T00:57:14.170000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "id: <computed>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "cidr_block: \"10.0.0.0/16\", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "compartment_id: \"ocid1.tenancy.oc1..exampleaqnpcpfqfmrf6dw5gcew7yqpirvarueirj2mv4jzn5goejsxma\", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": "default_dhcp_options_id: <computed_value>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": " default_route_table_id: <computed_value>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, { "level": "INFO", "message": " default_security_list_id: <computed_value>", "timestamp": "2018-05-24T00:57:14.172000+00:00", "type": "TERRAFORM_CONSOLE" }, ...
Per visualizzare i log in formato rawUtilizzare il comando
oci resource-manager job get-job-logs-content
e i parametri richiesti per ottenere il contenuto dei log per un job.oci resource-manager job get-job-logs-content [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
-
Il file di stato del job rappresenta l'output del job in formato JSON.
Il file di stato mappa le risorse dello stack alla configurazione e gestisce anche i metadati di configurazione essenziali, ad esempio le dipendenze delle risorse. Resource Manager genera e aggiorna automaticamente i file di stato quando si eseguono i job.
Resource Manager supporta il blocco dello stato consentendo l'esecuzione di un solo job alla volta in un determinato stack. Per ulteriori informazioni sui file di stato, vedere Stato.
Per visualizzare lo stato del job (console)-
Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Job.
È possibile accedere ai job anche da una pagina dei dettagli dello stack. Selezionare Stack, quindi selezionare il nome dello stack desiderato.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare il nome del job.
Si apre la pagina Dettagli job.
-
Selezionare Scarica configurazione Terraform.
Per visualizzare lo stato del job (CLI)Utilizzare il comando
oci resource-manager job get-job-tf-state
e i parametri richiesti per ottenere lo stato di un job.oci resource-manager job get-job-tf-state [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Risposta di esempio:
{ "data": { "lineage": "57ef4f0c-c8cd-8a32-d45f-d2c40be7b915", "modules": [ { "depends_on": [], "outputs": {}, "path": [ "root" ], "resources": { "oci_core_virtual_network.vcn1": { "depends_on": [], "deposed": [], "primary": { "attributes": { "cidr_block": "10.0.0.0/16", "compartment_id": "ocid1.tenancy.oc1..uniqueid", "default_dhcp_options_id": "ocid1.dhcpoptions.oc1.phx.uniqueid", "default_route_table_id": "ocid1.routetable.oc1.phx.uniqueid", "default_security_list_id": "ocid1.securitylist.oc1.phx.uniqueid", "display_name": "My VCN display name", "dns_label": "myvcntest", "id": "ocid1.vcn.oc1.phx.uniqueid", "state": "AVAILABLE", "time_created": "2018-05-24 01:13:05.855 +0000 UTC", "vcn_domain_name": "myvcntest.oraclevcn.com" }, "id": "ocid1.vcn.oc1.phx.uniqueid", "meta": { "e2bfb730-ecaa-11e6-8f88-34363bc7c4c0": { "create": 300000000000, "delete": 300000000000, "update": 300000000000 } }, "tainted": false }, "provider": "provider.oci", "type": "oci_core_virtual_network" } } } ], "serial": 4, "terraform_version": "0.11.7", "version": 3 } }
-
-
Quando è necessario rilasciare le risorse di cui è stato eseguito il provisioning, eseguire un job di eliminazione nello stack.
Un job di eliminazione elimina lo stack creato, quindi esegue il cleanup delle risorse associate senza eliminarle. Ad esempio, il job di eliminazione termina le istanze di computazione associate allo stack.
Nota
Si consiglia di eseguire un job di eliminazione prima di eliminare uno stack per rilasciare prima le risorse associate. Quando si elimina uno stack, viene eliminato anche il relativo file di stato associato, pertanto si perde traccia dello stato delle risorse associate. Il cleanup delle risorse associate a uno stack eliminato può essere difficile senza il file di stato, soprattutto quando tali risorse vengono distribuite in più compartimenti. Per evitare difficoltà di cleanup in seguito, si consiglia di rilasciare prima le risorse associate mediante l'esecuzione di un job di eliminazione.
Impossibile recuperare i dati dalle risorse eliminate.
Per eseguire un job di eliminazione (console)-
Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Stack.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare.
-
Selezionare il nome dello stack desiderato.
Viene visualizzata la pagina Dettagli stack.
- Selezionare Elimina.
-
(Facoltativo) Nel pannello Elimina, rivedere il nome e le altre impostazioni del job di applicazione e, se necessario, aggiornarlo.
-
Selezionare Elimina.
Il job di eliminazione è stato creato. Il nuovo job viene elencato in Job.
Dopo aver eseguito un job di eliminazione, ottenere il job per verificarne lo stato. Facoltativamente, è possibile visualizzare il file di stato Terraform, visualizzare i log e confermare l'eliminazione delle risorse. È inoltre possibile ricreare le risorse eliminate.
Monitorare lo stato del job (stato del ciclo di vita) ottenendo i dettagli del job. Riuscito (
SUCCEEDED
) indica che il job è stato completato. A seconda della complessità del job, l'operazione può richiedere del tempo. Al termine o durante l'esecuzione del job, è possibile ottenere il contenuto dei log dei job.Per visualizzare il file di stato Terraform (mostra lo stato delle risorse dopo l'esecuzione del job), selezionare il nome del job per visualizzare la pagina Dettagli job, quindi selezionare Visualizza stato in Risorse. Se si desidera, selezionare Mostra modifiche in questa versione.
Per visualizzare i log del job, selezionare il job per aprirne la pagina dei dettagli, quindi selezionare Log in Risorse.
Per confermare l'eliminazione delle risorse, ispezionare le risorse nel compartimento.
Per ricreare le risorse di uno stack dopo che le risorse sono state eliminate, eseguire un job di applicazione. Le nuove risorse differiscono dalle risorse eliminate in precedenza in base agli OCID univoci e ad altri metadati.
Per eseguire un job di eliminazione (CLI, destroy Job)Utilizzare il comando
oci resource-manager job create-destroy-job
e i parametri richiesti per eseguire un job di eliminazione.oci resource-manager job create-destroy-job [OPTIONS]
Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Resource Manager.
Dopo aver eseguito un job di eliminazione, ottenere il job per verificarne lo stato.
Monitorare lo stato del job (stato del ciclo di vita) ottenendo i dettagli del job. Riuscito (
SUCCEEDED
) indica che il job è stato completato. A seconda della complessità del job, l'operazione può richiedere del tempo. Al termine o durante l'esecuzione del job, è possibile ottenere il contenuto dei log dei job.Facoltativamente, è possibile visualizzare il file di stato Terraform, visualizzare i log e confermare l'eliminazione delle risorse. È inoltre possibile ricreare le risorse eliminate.
Per confermare l'eliminazione delle risorse, ispezionare le risorse nel compartimento.
Per ricreare le risorse di uno stack dopo che le risorse sono state eliminate, eseguire un job di applicazione. Le nuove risorse differiscono dalle risorse eliminate in precedenza in base agli OCID univoci e ad altri metadati.
-
Task 3: Ripeti in più ambienti
In questa sezione viene descritto come creare e distribuire l'infrastruttura in più ambienti.
In questo scenario, si utilizza lo stesso file .zip di configurazione di Terraform per eseguire il provisioning di un'istanza di computazione negli ambienti di sviluppo, staging e produzione.
Questo scenario presuppone che la configurazione Terraform includa un documento di schema, che consente di modificare i valori delle variabili quando si crea uno stack nella console.
-
Accedere alla tenancy per il nuovo ambiente in cui si desidera eseguire il provisioning dell'infrastruttura definita nella configurazione Terraform.
Ad esempio, accedere alla tenancy per l'ambiente temporaneo o di produzione.
- Aprire la pagina Crea stack:
- Aprire il menu di navigazione e selezionare Developer Services. In Resource Manager, selezionare Stack.
-
In Ambito elenco, selezionare un compartimento in cui si dispone dell'autorizzazione per lavorare. La pagina viene aggiornata per visualizzare solo le risorse in tale compartimento. Se non si è certi del compartimento da utilizzare, contattare un amministratore.
- Selezionare Crea stack.
-
Utilizzando la stessa configurazione Terraform del primo ambiente, completare la scheda Informazioni sullo stack:
-
Nella pagina Crea stack, selezionare Configurazione personale.
-
In Configurazione dello stack, selezionare .Zip file e aggiungere la configurazione Terraform.
È possibile trascinare il file .zip di configurazione Terraform nel controllo oppure selezionare Sfoglia e passare alla posizione del file .zip.
- Immettere un nome per il nuovo stack o accettare il nome predefinito fornito. Evitare di inserire informazioni riservate.
- È possibile immettere una Descrizione.
-
Nell'elenco a discesa Crea nel compartimento selezionare il compartimento in cui si desidera creare lo stack.
-
Selezionare Successivo.
Nel pannello Configura variabili vengono visualizzate le variabili del file di configurazione Terraform selezionato.
-
-
Specificare i valori delle variabili per questo ambiente:
-
Nel pannello Configure variable esaminare le variabili e apportare le modifiche necessarie.
I valori predefiniti vengono forniti se specificati nel documento di schema.
Importante
Non aggiungere la chiave privata o altre informazioni riservate alle variabili di configurazione. - Selezionare Successivo.
-
- Nel pannello Rivedi verificare la configurazione dello stack.
- Per eseguire automaticamente il provisioning delle risorse alla creazione dello stack, selezionare Esegui applicazione.
-
Selezionare Crea per creare lo stack.
Viene visualizzata la pagina dei dettagli dello stack per il nuovo stack.
Se è stata selezionata l'opzione Esegui applicazione, Resource Manager esegue l'azione di applicazione sul nuovo stack.
Congratulazioni, la configurazione Terraform è stata riutilizzata per creare uno stack in un nuovo ambiente. Se è stata selezionata l'opzione Esegui applicazione, è stato eseguito il provisioning delle risorse anche nel nuovo ambiente.
È ora possibile generare ed esaminare un piano di esecuzione (e assegnare risorse, se l'opzione Esegui applicazione non è stata selezionata). Per completare questi elementi, ripetere i passi del Task 2: provisioning dell'infrastruttura nel nuovo ambiente.