Configurar uma Infraestrutura Simples com o OCI Terraform
Use o Terraform para configurar uma infraestrutura simples na sua conta do Oracle Cloud Infrastructure.
As principais tarefas incluem:
- Copie scripts existentes de outros tutoriais do Terraform.
- Edite os scripts para combinar todos os recursos em um diretório.
- Execute um comando
apply
para criar os seguintes recursos:- um compartimento
- uma rede virtual na nuvem
- uma instância de computação

Para obter mais informações, consulte:
Antes de Começar
Para executar este tutorial com sucesso, você precisa ter o seguinte:
- Uma conta do Oracle Cloud Infrastructure paga. Consulte Solicitar e Gerenciar Promoções do Oracle Cloud Grátis
- Um computador com MacOS, Linux ou Windows.
- Recursos do tutorial Terraform:
- Execute todas as etapas em:
- Mantenha os scripts criados nos seguintes diretórios:
$HOME/tf-provider/
$HOME/tf-compartment/
$HOME/tf-compute/
$HOME/tf-vcn/
1. Preparar
Copie os scripts criados nos tutoriais anteriores do Terraform para um novo diretório.
2. Editar os Scripts
Edite os scripts para designar um novo nome ao seu compartimento e para substituir todos os OCIDs com código fixo por referências.
Nos tutoriais anteriores, você usou um código fixo no OCID do compartimento. Agora, atualize <compartment-ocid>
para fazer referência ao compartimento em compartment.tf
.
- Descubra como o OCID do compartimento é referenciado no arquivo
outputs.tf
.grep -R compartment outputs.tf
Exemplo de saída:
# Outputs for compartment output "compartment-name" { value = oci_identity_compartment.tf-compartment.name output "compartment-OCID" { value = oci_identity_compartment.tf-compartment.id
- Copie o valor do OCID do compartimento para o bloco de notas:
oci_identity_compartment.tf-compartment.id
- Localize quais arquivos fazem referência a
compartment_id
.grep -Rn compartment_id
Exemplo de saída:
availability-domains.tf:7: compartment_id = "<tenancy-ocid>" compartment.tf:3: compartment_id = "<tenancy-ocid>" compute.tf:4: compartment_id = "<compartment-ocid>" private-security-list.tf:6: compartment_id = "<compartment-ocid>" private-subnet.tf:6: compartment_id = "<compartment-ocid>" public-security-list.tf:6: compartment_id = "<compartment-ocid>" public-subnet.tf:6: compartment_id = "<compartment-ocid>" vcn-module.tf:9: compartment_id = "<compartment-ocid>"
Observação
Ambos os arquivosavailability-domains.tf
ecompartment.tf
apontam para<tenancy-ocid>
. Por exemplo, o arquivocompartment.tf
aponta para a tenancy como seu compartimento principal e, em seguida, cria um compartimento abaixo dele. Não edite ocompartment_id
nesses dois arquivos. - Exceto pelos arquivos
availability-domains.tf
ecompartment.tf
, nos arquivos restantes que resultam do comandogrep
, substituacompartment_id = "<compartment-ocid>"
por:compartment_id = oci_identity_compartment.tf-compartment.id
No tutorial Criar uma Instância de Computação, você usou código fixo na sub-rede pública que hospeda a instância de computação. Agora, atualize o arquivo compute.tf
para fazer referência ao public-subnet-OCID
do arquivo public-subnet.tf
.
- Descubra como
subnet OCID
é referenciado no arquivooutputs.tf
.grep -R subnet outputs.tf
Exemplo de saída:
... # Outputs for private subnet output "private-subnet-name" { value = oci_core_subnet.vcn-private-subnet.display_name output "private-subnet-OCID" { value = oci_core_subnet.vcn-private-subnet.id # Outputs for public subnet output "public-subnet-name" { value = oci_core_subnet.vcn-public-subnet.display_name output "public-subnet-OCID" { value = oci_core_subnet.vcn-public-subnet.id
- Copie o valor do OCID da sub-rede pública para o bloco de notas:
oci_core_subnet.vcn-public-subnet.id
- Localize quais arquivos fazem referência a
subnet_id
.grep -Rn subnet_id
Exemplo de saída:
compute.tf:19: subnet_id = "<your-public-subnet-ocid>"
- No arquivo
compute.tf
que resulta do comandogrep
, substituacompartment_id = "<your-public-subnet-ocid>"
por:subnet_id = oci_core_subnet.vcn-public-subnet.id
Parabéns! Todos os scripts agora estão prontos para serem executados.
3. Criar uma Infraestrutura Simples
Execute os scripts do Terraform para criar um compartimento, uma rede virtual na nuvem e uma instância de computação na sub-rede pública.
- Inicialize um diretório de trabalho no diretório
tf-simple-infrastructure
.terraform init
- Crie um plano de execução e verifique as alterações que o Terraform planeja fazer na sua conta:
terraform plan
Exemplo de saída:
.... Terraform will perform the following actions: # oci_core_instance.ubuntu_instance will be created .... Plan: 14 to add, 0 to change, 0 to destroy. Changes to Outputs: + all-availability-domains-in-your-tenancy = [ ....
- Crie sua infraestrutura simples com o Terraform:
terraform apply
Quando for solicitada a confirmação, digite
yes
para que seus recursos sejam criados.
- abra o menu de navegação , selecione Identity & Security. Em Identidade, selecione Compartimentos.
- Atualize a página até ver o nome do compartimento.
- Abra o menu de navegação , selecione Rede e selecione Redes virtuais na nuvem.
- Selecione seu compartimento.
Se você não encontrar seu compartimento, atualize a página.
- Selecione sua VCN e, em seguida, revise os recursos criados.
- Abra o menu de navegação e selecione Computação. Em Compute, selecione Instâncias.
- Observe que sua instância aparece na lista de instâncias.
Revise as saídas no terminal de saída.
oci_identity_compartment.tf-compartment: Creating...
oci_identity_compartment.tf-compartment: Creation complete after 7s [id=xxx]
module.vcn.oci_core_vcn.vcn: Creating...
module.vcn.oci_core_vcn.vcn: Creation complete after 2s [id=xxx]
module.vcn.oci_core_internet_gateway.ig[0]: Creating...
module.vcn.oci_core_nat_gateway.nat_gateway[0]: Creating...
module.vcn.oci_core_default_security_list.lockdown[0]: Creating...
module.vcn.oci_core_service_gateway.service_gateway[0]: Creating...
oci_core_security_list.private-security-list: Creating...
oci_core_security_list.public-security-list: Creating...
module.vcn.oci_core_internet_gateway.ig[0]: Creation complete after 1s [id=xxx]
module.vcn.oci_core_route_table.ig[0]: Creating...
oci_core_security_list.public-security-list: Creation complete after 1s [id=xxx]
module.vcn.oci_core_default_security_list.lockdown[0]: Creation complete after 1s [id=xxx]
oci_core_security_list.private-security-list: Creation complete after 1s [id=xxx]
module.vcn.oci_core_route_table.ig[0]: Creation complete after 1s [id=xxx]
oci_core_subnet.vcn-public-subnet: Creating...
module.vcn.oci_core_nat_gateway.nat_gateway[0]: Creation complete after 2s [id=xxx]
module.vcn.oci_core_service_gateway.service_gateway[0]: Creation complete after 3s [id=xxx]
module.vcn.oci_core_route_table.service_gw[0]: Creating...
module.vcn.oci_core_route_table.nat[0]: Creating...
module.vcn.oci_core_route_table.service_gw[0]: Creation complete after 0s [id=xxx]
module.vcn.oci_core_route_table.nat[0]: Creation complete after 1s [id=xxx]
oci_core_subnet.vcn-private-subnet: Creating...
oci_core_subnet.vcn-public-subnet: Creation complete after 2s [id=xxx]
oci_core_instance.ubuntu_instance: Creating...
oci_core_subnet.vcn-private-subnet: Creation complete after 2s [id=xxx]
oci_core_instance.ubuntu_instance: Still creating... [10s elapsed]
oci_core_instance.ubuntu_instance: Still creating... [20s elapsed]
oci_core_instance.ubuntu_instance: Still creating... [30s elapsed]
oci_core_instance.ubuntu_instance: Creation complete after 38s [id=xxx]
Apply complete! Resources: 14 added, 0 changed, 0 destroyed.
Referências:
O Que Vem a Seguir
Parabéns! Você criou com sucesso uma infraestrutura simples usando o Terraform, na sua conta do Oracle Cloud Infrastructure.
Agora que você sabe como usar origens de dados, recursos e módulos, vá em frente e adicione novos objetos do Provedor do Oracle Cloud Infrastructure à sua infraestrutura simples.
Para explorar mais informações sobre desenvolvimento com produtos Oracle, confira estes sites: