Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Introduzione a Terraform in Oracle Cloud Infrastructure
Introduzione
Terraform è uno strumento Infrastructure as Code (IaC) sviluppato da Hashicorp che ti consente di definire, eseguire il provisioning e gestire la tua infrastruttura tra più provider cloud utilizzando la sintassi del linguaggio Terraform, HCL. Terraform ti consente di automatizzare l'intero ciclo di vita della tua infrastruttura cloud, semplificando la creazione, l'aggiornamento e la scalabilità delle risorse in modo coerente e riproducibile. Terraform è ampiamente utilizzato dai team DevOps per gestire le risorse cloud, migliorare l'efficienza dell'infrastruttura, ridurre gli errori manuali e le risorse cloud per il controllo delle versioni.
Questa esercitazione consente di iniziare a utilizzare IaC per la distribuzione e la gestione dell'infrastruttura cloud.
Workflow dell'architettura Terraform
Obiettivi
- Installa, configura e utilizza Terraform in Oracle Cloud Infrastructure (OCI) per MacOS e Windows. Esamineremo un esempio di distribuzione delle risorse di networking e computazione OCI.
Prerequisiti
-
Accesso a una tenancy OCI.
-
Account utente con i privilegi per accedere ai servizi e alle risorse OCI.
-
Installare le seguenti dipendenze.
-
Per MacOS: installare HomeBrew Package Manager e Terraform.
-
Visitare il sito HomeBrew.
-
Copiare il comando di installazione seguente nel terminale.
Command: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Immettere la password per l'autorizzazione sudo e l'installazione verrà eseguita.
-
Eseguire il comando seguente per completare l'installazione della birra.
Command 1: (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/{username}/.zprofile Command 2: eval "$(/opt/homebrew/bin/brew shellenv)"
-
Eseguire il comando
brew help
per verificare la corretta installazione. -
Eseguire i seguenti comandi per installare terraform.
Command 1: brew tap hashicorp/tap Command 2: brew install hashicorp/tap/terraform
-
Eseguire il comando
terraform -help
per verificare la corretta installazione.
-
-
Per Windows:
-
Scaricare il file
.exe
di terraform da qui: Installa Terraform, utilizzare x86 o 64 in base all'architettura del sistema operativo Windows dell'utente. Estrarre il file terraform scaricato e copiare il percorso. Percorso di esempio:C:\Users\useradmin\Downloads\terraform_1.7.5_windows_amd64
. -
Cercare Variabili di ambiente di sistema in Windows 10 o 11 e fare clic su Variabili di ambiente per modificarle.
-
In Variabili di sistema, selezionare il percorso e fare clic su Modifica.
-
In Modifica variabili di ambiente, selezionare Nuovo e immettere il percorso copiato per il file di terraform.
-
Fare clic su OK per tutte e 3 le finestre per aggiornare la nuova voce.
-
Aprire il prompt dei comandi ed eseguire il seguente comando.
terraform version
Nota: nel laptop o nella virtual machine (VM) Windows, se si verifica l'errore non riconoscibile Terraform, è necessario riavviare o riavviare il sistema, in modo che il nuovo set di variabili di ambiente di sistema venga visualizzato nel computer Windows.
-
Task 1: Dichiara il provider
Un provider Terraform si riferisce a un plugin che è responsabile della comprensione e dell'interazione con un tipo specifico di infrastruttura o servizio. I provider sono il ponte tra Terraform e le API dei servizi o delle piattaforme che si desidera gestire. I provider consentono a Terraform di comunicare e interagire con le piattaforme cloud in modo efficace. In altre parole, il provider Terraform è come un traduttore che aiuta Terraform a parlare con diversi servizi o sistemi cloud, consentendogli di creare, gestire ed eliminare risorse come virtual machine, database e reti.
Ogni provider in genere corrisponde a una piattaforma cloud specifica (ad esempio, OCI, AWS, Azure, GCP) o a un servizio di infrastruttura (ad esempio, Kubernetes, Docker).
-
Creare una cartella denominata
terraform-beginners-demo
e aprirla in VS Code. -
Installare l'estensione HashiCorp Terraform in VS Code.
-
Creare i file
provider.tf
evariables.tf
nella cartellaterraform-beginners-demo
. -
Copiare il codice seguente nel file
provider.tf
.terraform { required_providers { oci = { source = "oracle/oci" version = "5.30.0" } } } provider "oci" { tenancy_ocid = var.tenancy_id user_ocid = var.user_id fingerprint = var.api_fingerprint private_key_path = var.api_private_key_path region = var.region }
Nota: il codice è stato utilizzato dalla pagina ufficiale del registro Terraform. Per ulteriori informazioni, consulta Oracle Cloud Infrastructure Provider e Ultima versione (5.30.0).
Task 2: Crea configurazione OCI
Per configurare il provider, sono necessari OCI User Oracle Cloud Identifier (OCID), OCID tenancy e OCID compartimento.
-
Eseguire il login alla console OCI.
-
Fare clic sull'icona del profilo utente e selezionare Profilo personale.
-
Per ottenere la coppia di chiavi API, effettuare le operazioni riportate di seguito.
-
In Risorse, selezionare Chiavi API e fare clic su Aggiungi chiave API.
-
È possibile generare una nuova coppia di chiavi API oppure utilizzare la chiave pubblica esistente per generare una coppia di chiavi API. Selezionare Generate API key pair. Accertarsi di scaricare la chiave privata e la chiave pubblica.
-
Fare clic su Aggiungi. Verrà visualizzata una casella di anteprima del file di configurazione.
-
Copiare i dettagli forniti nell'anteprima del file di configurazione e salvarlo da qualche parte. Verrà utilizzato nel file
variables.tf
.Deve essere:
[DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxx fingerprint=xx:xx:xx:xx:xx tenancy=ocid1.tenancy.oc1..xxxxxxxxx region=us-phoenix-1 # your region ID key_file=<path to your private keyfile> # TODO
-
Fare clic su Chiudi.
OR
Per ottenere la coppia di chiavi API, vedere Generate an API key configuration in OCI Console.
-
Task 3: configurare l'ambiente Terraform con le credenziali OCI
-
Andare all'editor di VS Code e creare un nuovo file denominato
variables.tf
nella cartellaterraform-beginners-demo
e incollare il codice seguente.variable "api_fingerprint" { description = "Fingerprint of OCI API private key for Tenancy" type = string } variable "api_private_key_path" { description = "Path to OCI API private key used for Tenancy" type = string } variable "tenancy_id" { description = "Tenancy ID where to create resources for Tenancy" type = string } variable "user_id" { description = "User ID that Terraform will use to create resources for Tenancy" type = string } variable "region" { description = "OCI region where resources will be created for Tenancy" type = string }
-
Creare un altro nuovo file denominato
terraform.tfvars
e incollare il codice seguente. Definire ogni variabile davariables.tf
utilizzando i valori del file di configurazione del task 2.3.# Identity and access parameters api_fingerprint = "REPLACE_BY_YOUR_FINGERPRINT" # Fingerprint of OCI API private key for Tenancy api_private_key_path = "~/.oci/oci_api_key.pem" # Path to OCI API private key used for Tenancy region = "us-phoenix-1" # OCI region where resources will be created for Tenancy tenancy_id = "REPLACE_YOUR_TENACY_OCID" # Tenancy ID where to create resources user_id = "REPLACE_BY_YOUR_USER_OCID" # Path to OCI API private key used for Tenancy
Nota: nell'ambiente di produzione si consiglia di utilizzare il file
terraform.tfvars
per definire le variabili terraform per promuovere sicurezza e scalabilità. Per ulteriori informazioni, vedere File delle definizioni variabili (.tfvars
).
Task 4: eseguire il test della connettività Terraform con la tenancy OCI
-
Creare un nuovo file denominato
data_source.tf
nella cartellaterraform-beginners-demo
e copiare il codice seguente.data "oci_identity_availability_domains" "ad" { #Required compartment_id = var.tenancy_id }
-
Creare un nuovo file denominato
output.tf
nella cartellaterraform-beginners-demo
e copiare il codice seguente.output "list_ads" { value = data.oci_identity_availability_domains.ad.availability_domains }
-
Aprire un nuovo terminale in VS Code ed eseguire i comandi riportati di seguito per eseguire lo script terraform.
Command 1: terraform init Command 2: terraform plan #to view your deployments what is going to be created Command 3: terraform apply #then type "yes" once prompted alternatively run "apply -auto-approve
Ora dovresti essere in grado di visualizzare la lista dei domini di disponibilità e il compartimento ad essi associato negli output.
Ora la configurazione del sistema è riuscita per distribuire le risorse nella tenancy OCI all'interno di Terraform. Le variabili sono state passate, ma non sono state apportate modifiche alla tenancy. Esamineremo alcuni esempi per aiutarti a comprendere meglio il processo di aggiunta, concatenamento e distruzione delle risorse utilizzando Terraform.
Task 5: (Esempio) distribuire un'istanza di OCI Compute utilizzando Terraform
Ora ci baseremo su ciò che hai creato nei task precedenti per distribuire le risorse di rete e di calcolo.
-
Creare un file denominato
networking.tf
e copiare il codice seguente.resource "oci_core_vcn" "test_vcn" { count = (var.create_new_vcn) ? 1 : 0 #Required compartment_id = var.compartment_id cidr_block = var.vcn_cidr_block display_name = var.vcn_display_name dns_label = var.vcn_dns_label }
Nota: per ulteriori informazioni sulla variabile core-vcn con configurazioni aggiuntive, vedere oci_core_vcn.
-
Modificare il file
variables.tf
e aggiungere le seguenti variabili.#VCN specific variables variable "create_new_vcn" { description = "Boolean variable to specify whether to create a new VCN or to reuse an existing one." type = bool } variable "compartment_id" { description = "OCI compartment where resources will be created" type = string } variable "vcn_cidr_block" { description = "The list of IPv4 CIDR blocks the VCN will use" type = string } variable "vcn_display_name" { description = "provide a descriptive name for the VCN - this is what you will see displayed in the OCI console" type = string } variable "vcn_dns_label" { description = "provide a descriptive alphanumeric name for the DNS - this is what you will see displayed in the OCI console" type = string } variable "vcn_id" { description = "provide your existing VCN OCID if create_new_vcn = false" type = string } variable "private_subnet_id" { description = "provide existing private subnet OCID" type = string } variable "public_subnet_id" { description = "provide existing public subnet OCID" type = string }
-
Aggiungere le nuove variabili in
terraform.tfvars
e definire ogni variabile in base alla configurazione della tenancy.# VCN specific variables create_new_vcn = true # Set this to true if you want terraform to crearte the network for you, otherwise set it to false. compartment_id = "REPLACE_BY_YOUR_COMPARTMENT_OCID" # add your own compartment id where the vcn will be created vcn_cidr_block = "10.0.0.0/16" # The list of IPv4 CIDR blocks the VCN will use vcn_display_name = "terraform_vcn_example" # provide a descriptive name for the VCN - this is what you will see displayed in the OCI console vcn_dns_label = "terraformvcn" # provide a descriptive alphanumeric name for the DNS - this is what you will see displayed in the OCI console # Configure CIDR Blocks, Subnet(Public, Private) OCIDS for an existing VCN. # vcn_id = "REPLACE_BY_YOUR_VCN_OCID" #ADD WITH YOUR VCN OCID private_subnet_id = "REPLACE_BY_YOUR__PRIVATE_SUBNET_OCID" #ADD WITH YOUR PRIVATE SUBNET public_subnet_id = "REPLACE_BY_YOUR_PUBLIC_SUBNET__OCID" #AA WITH YOUR PUBLIC SUBNET
Nota: se si dispone già di una VCN esistente, impostare
create_new_vcn
su false e modificare le variabilivcn_id
,private_subnet_id
epublic_subnet_id
. -
Creare subnet per la nuova VCN.
-
Nel file
networking.tf
, aggiungere il codice seguente per creare le subnet pubbliche e private.resource "oci_core_subnet" "private_subnet" { count = (var.create_new_vcn) ? 1 : 0 #Required cidr_block = var.private_subnet_cidr_block compartment_id = var.compartment_id vcn_id = oci_core_vcn.test_vcn.*.id[0] display_name = var.private_subnet_display_name prohibit_public_ip_on_vnic = var.private_subnet_prohibit_public_ip_on_vnic } resource "oci_core_subnet" "public_subnet" { count = (var.create_new_vcn) ? 1 : 0 #Required cidr_block = var.public_subnet_cidr_block compartment_id = var.compartment_id vcn_id = oci_core_vcn.test_vcn.*.id[0] display_name = var.public_subnet_display_name prohibit_public_ip_on_vnic = var.public_subnet_prohibit_public_ip_on_vnic route_table_id = oci_core_route_table.test_route_table.*.id[0] }
Nota: per ulteriori informazioni sulla variabile della subnet di base con configurazioni aggiuntive, vedere oci_core_subnet.
-
Aggiungere le nuove variabili della sottorete nel file
variables.tf
copiando il codice seguente.#Private subnet variables variable "private_subnet_cidr_block" { description = "OCI private subnet CIDR block range" type = string } variable "private_subnet_display_name" { description = "provide a descriptive name for the private subnet - this is what you will see displayed in the OCI console" type = string } variable "private_subnet_prohibit_public_ip_on_vnic" { description = "Allow public IP address to the VNIC" type = bool } #Public subnet variables variable "public_subnet_cidr_block" { description = "OCI public subnet CIDR block range" type = string } variable "public_subnet_display_name" { description = "provide a descriptive name for the public subnet - this is what you will see displayed in the OCI console" type = string } variable "public_subnet_prohibit_public_ip_on_vnic" { description = "Allow public IP address to the VNIC" type = bool }
-
Dichiarare le nuove variabili della sottorete nel file
terrform.tfvars
.#Private subnet variables private_subnet_cidr_block = "10.0.1.0/24" # OCI private subnet CIDR block range private_subnet_display_name = "terraform_private_subnet_example" # provide a descriptive name for the private subnet - this is what you will see displayed in the OCI console private_subnet_prohibit_public_ip_on_vnic = false # Allow public IP address to the VNIC #Public subnet variables public_subnet_cidr_block = "10.0.2.0/24" # OCI public subnet CIDR block range public_subnet_display_name = "terraform_public_subnet_example" # provide a descriptive name for the public subnet - this is what you will see displayed in the OCI console public_subnet_prohibit_public_ip_on_vnic = false
-
-
Aggiungere il codice seguente nel file
networking.tf
per creare un gateway Internet.resource "oci_core_internet_gateway" "test_internet_gateway" { count = (var.create_new_vcn) ? 1 : 0 #Required compartment_id = var.compartment_id display_name = "INTERNET_GTWFOR_${var.vcn_display_name}" vcn_id = oci_core_vcn.test_vcn.*.id[0] #route_table_id = oci_core_route_table.test_route_table.id }
-
Aggiungere il codice seguente in
networking.tf
per la tabella di instradamento per gestire il traffico verso Internet.resource "oci_core_route_table" "test_route_table" { count = (var.create_new_vcn) ? 1 : 0 #Required compartment_id = var.compartment_id vcn_id = oci_core_vcn.test_vcn.*.id[0] route_rules { #Required network_entity_id = oci_core_internet_gateway.test_internet_gateway.*.id[0] description = "route rule internet access for ${var.vcn_display_name}" destination = "0.0.0.0/0" destination_type = "CIDR_BLOCK" } }
-
Creare il gruppo di sicurezza di rete (NSG) associato alla VCN. Copiare il codice seguente nel file
networking.tf
.resource "oci_core_network_security_group" "test_nsg" { count = (var.create_new_vcn) ? 1 : 0 #Required compartment_id = var.compartment_id vcn_id = oci_core_vcn.test_vcn.*.id[0] display_name = "NETWORK_SECURITY_GROUP_${var.vcn_display_name}" freeform_tags = { "Lab" = "Terraofm 101 Guide" } }
-
Ora creeremo 2 nuovi file,
compute_linux.tf
ecompute_windows.tf
, per la distribuzione di una VM Linux e di una VM Windows. -
In
compute_linux.tf
, copiare il codice seguente per creare un'istanza di computazione con un sistema operativo Linux.resource "oci_core_instance" "test_linux_instance" { #Required count = var.create_linux_instance ? 1 : 0 availability_domain = data.oci_identity_availability_domains.ad.availability_domains[0].name compartment_id = var.compartment_id create_vnic_details { assign_public_ip = "true" display_name = var.instance_display_name nsg_ids = [] skip_source_dest_check = "false" subnet_id = var.create_new_vcn ? oci_core_subnet.public_subnet.*.id[0] : var.public_subnet_id } display_name = "${var.instance_display_name}_linux" metadata = { ssh_authorized_keys = "${file(var.public_ssh_key)}" } shape = var.instance_shape shape_config { memory_in_gbs = var.instance_flex_memory_in_gbs ocpus = var.instance_flex_ocpus } launch_options { boot_volume_type = "PARAVIRTUALIZED" firmware = "UEFI_64" is_consistent_volume_naming_enabled = "true" is_pv_encryption_in_transit_enabled = "true" network_type = "PARAVIRTUALIZED" remote_data_volume_type = "PARAVIRTUALIZED" } source_details { #Required source_id = var.linux_image_ocid source_type = "image" } preserve_boot_volume = false }
-
In
compute_windows.tf
, copiare il codice seguente.resource "oci_core_instance" "test_windows_instance" { #Required count = var.create_windows_instance ? 1 : 0 availability_domain = data.oci_identity_availability_domains.ad.availability_domains[0].name compartment_id = var.compartment_id create_vnic_details { assign_public_ip = "true" display_name = var.instance_display_name nsg_ids = [] skip_source_dest_check = "false" subnet_id = var.create_new_vcn ? oci_core_subnet.public_subnet.*.id[0] : var.public_subnet_id } display_name = "${var.instance_display_name}_windows" metadata = { } shape = var.instance_shape shape_config { memory_in_gbs = var.instance_flex_memory_in_gbs ocpus = var.instance_flex_ocpus } launch_options { boot_volume_type = "PARAVIRTUALIZED" firmware = "UEFI_64" is_pv_encryption_in_transit_enabled = "true" network_type = "PARAVIRTUALIZED" remote_data_volume_type = "PARAVIRTUALIZED" } source_details { #Required source_id = var.windows_image_ocid source_type = "image" } preserve_boot_volume = false }
-
Aggiornare
variables.tf
con le nuove variabili percompute_linux
ecompute_windows
.#Compute variables variable "instance_shape" { description = "value" type = string } variable "instance_flex_memory_in_gbs" { description = "(Updatable) The total amount of memory available to the instance, in gigabytes." type = number } variable "instance_flex_ocpus" { description = "(Updatable) The total number of OCPUs available to the instance." type = number } variable "instance_create_vnic_details_assign_public_ip" { description = "To allow compute connectivity from internet" type = bool } variable "instance_display_name" { description = "provide a descriptive name for the compute instance - this is what you will see displayed in the OCI console" type = string } variable "public_ssh_key" { description = "Add your public ssh key - for provisioning your compute instance" type = string } variable "private_ssh_key" { description = "Add your private ssh key - for accessing your compute instance after creation" type = string } variable "create_linux_instance" { description = "Boolean variable to specify whether to provision a Linux instances" type = bool } variable "create_windows_instance" { description = "Boolean variable to specify whether to provision a Windows instances" type = bool } variable "windows_image_ocid" { description = "OCID of the Windows image to use" type = string } variable "linux_image_ocid" { description = "OCID of the Linux image to use" type = string }
-
Aggiungere e definire le nuove variabili in
terraform.tfvars
.#Compute variables - Make sure to select a compatible shape (e.g.: VM.Standard.E4.Flex) instance_shape = "VM.Standard.E5.Flex" # Shape of the compute instance instance_flex_memory_in_gbs = 16 # (Updatable) The total amount of memory available to the instance, in gigabytes. instance_flex_ocpus = 1 # (Updatable) The total number of OCPUs available to the instance. instance_create_vnic_details_assign_public_ip = true # To allow compute connectivity from internet instance_display_name = "terraform_compute_example" # provide a descriptive name for the compute instance - this is what you will see displayed in the OCI console #SSH keys https://docs.oracle.com/en/learn/generate_ssh_keys/index.html#introduction public_ssh_key = "~/cloudshellkey.pub" # Add your public ssh key private_ssh_key = "~/cloudshellkey" # Add your private ssh key create_linux_instance = true # if set to true a test linux instance will be created and false no linux instance will be deployed. create_windows_instance = true # # If set to true a test windows instance will be created and false no windows instance will be deployed. linux_image_ocid = "REPLACE_BY_YOUR_REGION_LINUX_IMAGE_OCID" # OCID for chosen image (Oracle Linux 9 example) specific to the test region (us-phoenix-1) windows_image_ocid = "REPLACE_BY_YOUR_REGION_WINDOWS_IMAGE_OCID" # OCID for chosen image (Windows example) specific to each region (us-phoenix-1) # Here are other image OCIDs for popular region (Ashburn, San Jose, Toronto) # Ashburn # Oracle linux image_id = ocid1.image.oc1.iad.aaaaaaaau7uaok7n5qd4nivgiyfatfdddhltmxddtfbyqg3bsg3fxk6z6aqq # Windows image_id = ocid1.image.oc1.iad.aaaaaaaamaaiupezxbrw6fji5ndk3jdujwhjuexcafheqjqf45g6nzyblz6a #San Jose # Oracle linux image_id = ocid1.image.oc1.us-sanjose-1.aaaaaaaabjixxpfouczgpcnpvgny5pcqtgjgi3nincszbfdkd2xr4jvzahua # Windows image_id = ocid1.image.oc1.us-sanjose-1.aaaaaaaatmjlzoqw5gzohjvygzcm5rpugomxyfho5xi6subjchoxnxo4wcfa #Toronto # Oracle linux image_id = ocid1.image.oc1.ca-toronto-1.aaaaaaaai6uhjrtajuuitl5hara5brnvwqvq4aebenmnbehv2cila75xbvzq # Windows image_id = ocid1.image.oc1.ca-toronto-1.aaaaaaaaeged3obrrmmwvyruvknszy23btvb2fqu7vn3c5azeecbj2prm64q # for other image OCIDs: https://docs.oracle.com/en-us/iaas/images/
Nota: gli OCID immagine sono specifici di ogni area. All'interno del codice precedente sono presenti OCID di immagini per le aree più diffuse e gli OCID di immagine per tutte le altre aree sono disponibili qui: Tutte le famiglie di immagini.
-
In
output.tf
, copiare il codice seguente. Verranno stampate le risorse create nel terminale.# Regions output "linux_instance_region" { value = oci_core_instance.test_linux_instance.*.region } output "windows_instance_region" { value = oci_core_instance.test_windows_instance.*.region } # Networking output "network_vcn_name" { value = oci_core_vcn.test_vcn.*.display_name } # Compute: Linux Test Instance output "output_linux_instance_display_name" { value = oci_core_instance.test_linux_instance.*.display_name } output "output_linux_instance_public_ip" { value = oci_core_instance.test_linux_instance.*.public_ip } output "output_linux_instance_state" { value = oci_core_instance.test_linux_instance.*.state } # Compute: Windows Test Instance output "output_windows_instance_display_name" { value = oci_core_instance.test_windows_instance.*.display_name } output "output_windows_instance_public_ip" { value = oci_core_instance.test_windows_instance.*.public_ip } output "output_windows_instance_state" { value = oci_core_instance.test_windows_instance.*.state }
-
Aprire il nuovo terminale per
terraform-example
ed eseguire i comandi riportati di seguito.Command 1: terraform init Command 2: terraform plan Commnad 3: terraform apply (and then respond "yes") OR terraform apply -auto-approve
Dovresti visualizzare l'output riportato di seguito e creare una VCN, una subnet privata e una subnet pubblica, una tabella di instradamento, un gateway Internet, un nsg, una VM Linux e una VM Windows.
-
Le risorse sono state ora distribuite utilizzando Terraform. Dopo aver verificato la creazione della risorsa nella tenancy OCI, utilizzare il comando seguente per eliminare tutte le risorse.
Command: terraform destroy
Passi successivi
Ora hai creato la connessione a Terraform e hai imparato a distribuire, aggiornare ed eliminare le risorse con un semplice esempio. Per continuare il tuo percorso Terraform in OCI e prepararti per la certificazione OCI Architect Professional, consulta la sezione relativa all'accelerazione della certificazione Oracle Cloud Infrastructure Architect Professional con Terraform.
Accogliamo con favore i contributi dei lettori per migliorare ed espandere questo tutorial. I tuoi contributi sono molto preziosi per il miglioramento di questa risorsa per i futuri studenti Terraform.
Collegamenti correlati
Conferme
- Autori - Gretchen Zhang (Cloud Engineer), Akarsha I (Staff Cloud Engineer), Mahamat Guiagoussou (Master Principal Cloud Architect)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Get Started with Terraform in Oracle Cloud Infrastructure
G18826-01
November 2024