Applicazione delle configurazioni
Utilizzare il provider Terraform OCI per applicare le configurazioni.
Dopo aver installato e configurato il provider Terraform di Oracle Cloud Infrastructure (OCI) ed aver creato configurazioni Terraform che includono il provider e una risorsa o un'origine dati, è possibile eseguire Terraform sull'infrastruttura OCI.
Inizializzazione di Terraform
Eseguire il comando seguente da una directory che contiene i file di configurazione Terraform per inizializzare Terraform:
terraform init
Output di esempio:
Initializing the backend...
Initializing provider plugins...
- Finding latest version of hashicorp/oci...
- Installing hashicorp/oci v3.96.0...
- Installed hashicorp/oci v3.96.0 (signed by HashiCorp)
The following providers do not have any version constraints in configuration,
so the latest version was installed.
...
* hashicorp/oci: version = "~> 3.96.0"
Terraform has been successfully initialized!
Se il comando restituisce un errore, verificare che il provider Terraform OCI sia configurato correttamente.
Revisione delle modifiche
Senza apportare modifiche alle risorse OCI esistenti, Terraform può restituire una lista di modifiche che verranno apportate in base alle configurazioni se si sceglie di applicarle. Questo elenco è denominato piano di esecuzione. Per visualizzare il piano di esecuzione, eseguire il comando seguente:
terraform plan
Output di esempio:
An execution plan has been generated and is shown below.
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 = "exampleuniqueID"
+ 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.
Rivedere il piano e verificare se le modifiche visualizzate nel piano corrispondono alle aspettative.
Modifiche distruttive
Alcune risorse OCI dispongono di proprietà che non possono essere aggiornate da Terraform senza eliminare la risorsa esistente e ricrearla con il nuovo valore di proprietà. Quando si esegue terraform plan
e si tenta di modificare una proprietà non aggiornabile, Terraform indica la risorsa che verrà sostituita e la proprietà o le proprietà che non possono essere aggiornate.
Ad esempio, il seguente piano di esecuzione antepone a una risorsa che verrà eliminata e ricreata con -/+
e aggiunge il commento # forces replacement
alla proprietà che non può essere aggiornata:
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement
Terraform will perform the following actions:
# oci_core_vcn.vcn must be replaced
-/+ resource "oci_core_vcn" "vcn" {
~ cidr_block = "10.0.0.0/16" -> "11.0.0.0/16" # forces replacement
~ cidr_blocks = [
- "10.0.0.0/16",
] -> (known after apply)
compartment_id = "ocid1.compartment.oc1..exampleuniqueID"
~ default_dhcp_options_id = "ocid1.dhcpoptions.oc1.phx.exampleuniqueID" -> (known after apply)
~ default_route_table_id = "ocid1.routetable.oc1.phx.exampleuniqueID" -> (known after apply)
~ default_security_list_id = "ocid1.securitylist.oc1.phx.exampleuniqueID" -> (known after apply)
~ defined_tags = {} -> (known after apply)
display_name = "vcn"
dns_label = "vcn"
~ freeform_tags = {} -> (known after apply)
~ id = "ocid1.vcn.oc1.phx.exampleuniqueID" -> (known after apply)
+ ipv6cidr_block = (known after apply)
+ ipv6public_cidr_block = (known after apply)
+ is_ipv6enabled = (known after apply)
~ state = "AVAILABLE" -> (known after apply)
~ time_created = "2021-01-25 20:54:53.255 +0000 UTC" -> (known after apply)
~ vcn_domain_name = "vcn.oraclevcn.com" -> (known after apply)
}
Plan: 1 to add, 0 to change, 1 to destroy.
Anche l'eliminazione e la ricreazione forzate di una risorsa potrebbero comportare la sostituzione di una risorsa padre. Eseguire sempre
terraform plan
prima di eseguire terraform apply
per vedere quali risorse saranno interessate.Il riferimento completo delle risorse e delle origini dati supportate del provider Terraform OCI contiene dettagli su uso, argomento e attributo. Il riferimento completo è disponibile sul sito docs.oracle.com e nel registro Terraform.
Il riferimento indica quali proprietà possono essere aggiornate.
Applicazione modifiche
Una volta che si è certi che le configurazioni determineranno le modifiche previste, è possibile applicare le configurazioni Terraform eseguendo il comando seguente:
terraform apply
Quando viene richiesta la conferma, immettere yes
per la creazione della risorsa. Dopo aver eseguito il comando apply
, l'output viene visualizzato nel terminale. Output di esempio:
oci_identity_compartment.tf-compartment: Creating...
oci_identity_compartment.tf-compartment: Creation complete after 9s [id=exampleuniqueID]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Outputs:
compartment-OCID = ocid1.compartment.exampleuniqueID
compartment-name = <your-compartment-name>
Se si apportano modifiche alle risorse gestite con Terraform al di fuori di Terraform, tali modifiche verranno sovrascritte la prossima volta che si utilizza Terraform per applicare le configurazioni. Aggiungere il parametro
ignore_changes
alle risorse nel file di configurazione che non si desidera sovrascrivere.