Aplicando Configurações
Depois que o provedor Terraform do Oracle Cloud Infrastructure (OCI) for instalado e configurado e você tiver criado as configurações do Terraform que incluam o provedor e um recurso ou uma origem de dados, poderá executar o 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 init
Saída do exemplo:
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 resultar em um erro, verifique se o provedor Terraform do OCI está configurado corretamente.
Verificando 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 plan
Saída do exemplo:
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 recriá-lo 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 apply
Quando 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. Saída do exemplo:
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 fora 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.