Aplicando Configurações
Use o provedor Terraform do OCI para aplicar configurações.
Após o provedor Terraform do Oracle Cloud Infrastructure (OCI) ser instalado e configurado, e você ter criado configurações Terraform que incluem o provedor e um recurso ou origem de dados, você poderá executar Terraform na sua infraestrutura do OCI.
Inicializando o Terraform
Execute o comando a seguir em um diretório que contenha seus arquivos de configuração do Terraform para inicializar o Terraform:
terraform initExemplo de saída:
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 o comando gerar um erro, verifique se o provedor Terraform do OCI está configurado corretamente.
Revisando Alterações
Sem fazer alterações nos recursos existentes do OCI, o Terraform poderá retornar uma lista de alterações que serão feitas com base em suas configurações, se você optar por aplicá-las. Esta lista é chamada de plano de execução. Para exibir o plano de execução, execute o seguinte comando:
terraform planExemplo de saída:
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.
Revise o plano e verifique se as alterações mostradas nele correspondem às suas expectativas.
Alterações Destrutivas
Alguns recursos do OCI têm propriedades que não podem ser atualizadas pelo Terraform sem destruir o recurso existente e criá-lo novamente com o novo valor de propriedade. Quando você executa terraform plan e tenta modificar uma propriedade não atualizável, o Terraform indica que recurso será substituído e que propriedade(s) não pode(em) ser atualizada(s).
Por exemplo, o plano de execução a seguir prefixa um recurso que será excluído e recriado com -/+ e anexa o comentário # forces replacement à propriedade que não pode ser atualizada:
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.
Uma exclusão forçada e recriação de um recurso também pode resultar na substituição de um recurso pai. Sempre execute
terraform plan antes de executar terraform apply para ver quais recursos serão afetados.A referência completa dos recursos e origens de dados suportados do provedor Terraform do OCI contém detalhes de uso, argumento e atributo. A referência completa está disponível em docs.oracle.com e Terraform Registry.
A referência indica quais propriedades são atualizáveis.
Aplicando Alterações
Quando tiver certeza de que suas configurações resultarão em suas alterações esperadas, você poderá aplicar suas configurações do Terraform executando o seguinte comando:
terraform applyQuando for solicitada a confirmação, digite yes para que seu recurso seja criado. Depois de executar o comando apply, a saída é exibida no terminal. Exemplo de saída:
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 você fizer alterações nos recursos gerenciados com o Terraform do Terraform, essas alterações serão substituídas na próxima vez que você usar o Terraform para aplicar as configurações. Adicione o parâmetro
ignore_changes aos recursos do arquivo de configuração que você não deseja substituir.