Criar uma Rede Virtual na Nuvem
Use o Terraform para criar uma VCN (rede virtual na nuvem) na sua tenancy do Oracle Cloud Infrastructure.
As principais tarefas incluem:
- Configure uma VCN básica.
- Defina e adicione os seguintes recursos à rede:
- Listas de segurança
- Sub-redes privadas e públicas

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/
- Mantenha o compartimento no tutorial Criar um Compartimento em sua tenancy.
1. Preparar
Prepare seu ambiente para criar uma VCN. Além disso, colete todas as informações necessárias para concluir o tutorial.
Copie as informações a seguir no seu bloco de notas.
Para ver as etapas para coletar essas informações, consulte a tabela a seguir.
Item | Etapas para coletar o item |
---|---|
Nome do compartimento | Consulte o tutorial concluído Criar um Compartimento. |
ID do Compartimento |
|
Região |
|
Se seu nome de usuário estiver no grupo Administrators
, ignore esta seção. Caso contrário, peça ao administrador para adicionar a seguinte política à sua tenancy:
allow group <a-group-your-username-belongs-to> to manage all-resources in compartment <your-compartment-name>
Com esse privilégio, você pode gerenciar todos os recursos em seu compartimento, dando a você direitos administrativos nesse compartimento.
- Na Console: Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Políticas.
- Selecione seu compartimento.
- Selecione Criar Política.
- Na página Criar Política, informe os seguintes valores:
- Nome:
manage-<your-compartment-name>-resources
- Descrição:
Allow users to list, create, update, and delete resources in <your-compartment-name>.
- Compartimento:
<your-tenancy>(root)
- Nome:
- Para o Criador de Políticas, informe os seguintes valores:
- Casos de uso da política:
Compartment Management
- Modelos de política comum:
Let compartment admins manage the compartment
- Domínio de identidades: <identity-domain>
- Grupos
<a-group-your-username-belongs-to>
- Local:
<your-compartment-name>
- Casos de uso da política:
- Selecione Criar.
Referência: Políticas Comuns
2. Criar uma Rede Básica
Crie scripts para autenticação, uma VCN (rede virtual na nuvem) básica definida por um módulo e saídas.
Primeiro, configure um diretório para seus scripts do Terraform. Em seguida, copie o provedor e os scripts de versões do tutorial Configurar OCI Terraform para que sua conta do Oracle Cloud Infrastructure possa autenticar os scripts em execução nesse diretório.
Decle uma rede básica com um módulo de VCN (rede virtual na nuvem) do Oracle Cloud Infrastructure, documentado no Registro do Terraform. Em seguida, execute os scripts e crie a rede. Nas próximas seções, adicione componentes para personalizar a rede.
Você pode salvar uma pilha no workflow da Console para criar uma VCN. A pilha contém uma configuração do Terraform que você pode usar como referência para a configuração da VCN. Consulte Criando uma Pilha com Base em uma Página de Criação de Recursos e Obtendo a Configuração do Terraform de uma Pilha.
Sobre Módulos
Um módulo é um contêiner para vários recursos que são usados juntos. Em vez de declarar recursos de infraestrutura um a um, comece com um módulo fornecido pelo Oracle Cloud Infrastructure. Por exemplo, comece com um módulo básico de VCN. Em seguida, adicione aos seus scripts os recursos que não estão incluídos no módulo.
Declarar um Bloco de Módulo
- Inicie o bloco com a palavra-chave:
module
- Adicione um label para o nome informado do módulo:
- Exemplo:
"vcn"
- Exemplo:
- Dentro do bloco de código:
- Adicione informações de
source
eversion
da seção Instruções de Provisionamento da documentação do módulo. - Forneça um valor para as entradas obrigatórias. Eles não têm um valor padrão. Por exemplo:
# Required Inputs compartment_id = "<compartment-ocid>"
- Forneça valores para as entradas opcionais que você deseja substituir. Caso contrário, seus valores padrão serão usados. Por exemplo:
# Optional Inputs region = "<region-identifier>" # Changing the following default values vcn_name = "tutorial-vcn" create_internet_gateway = true create_nat_gateway = true create_service_gateway = true
- Você pode comentar as entradas opcionais e mostrar seu valor padrão; portanto, mais tarde, ao revisar seu código, você saberá quais valores eram esperados. Por exemplo:
# Using the following default values # vcn_dns_label = "vcnmodule" # vcn_cidrs = ["10.0.0.0/16"]
- Adicione informações de
Adicione blocos de saída ao seu código para obter informações sobre sua rede virtual na nuvem depois de executar seus scripts.
Sobre Saídas do Módulo
As saídas do módulo são os atributos que você pode retornar para esse módulo.
Localizar Saídas para Módulo da VCN
Vá para a página vcn e selecione Saídas para exibir uma lista de atributos que podem ser gerados para o módulo da VCN. Revise a descrição dos atributos:
- ig_route_id
- OCID da tabela de roteamento que inclui o gateway de internet
- nat_gateway_id
- OCID do gateway NAT
- nat_route_id
- OCID da tabela de roteamento que inclui o gateway NAT
- vcn_id
- OCID da VCN
Declarar um Bloco de Saída do Módulo
-
- Inicie o bloco com a palavra-chave:
output
. - Adicione um rótulo a ser impresso com os resultados de saída:
- O label pode conter letras, dígitos, sublinhados (
_
) e hifens (-
). O primeiro caractere não deve ser um dígito. - Exemplo:
"vcn_id"
- O label pode conter letras, dígitos, sublinhados (
- Obtenha os atributos das saídas do módulo em Módulos do Oracle Terraform.
- Dentro do bloco de código, informe um valor para a saída do módulo com a expressão:
value = module.<module-name>.<output-attribute>
- Exemplo:
value = module.vcn.vcn_id
- (Opcional): Dentro do bloco de código, adicione uma string de descrição. Por exemplo:
description = "OCID of the internet-route table. This route table has an internet gateway to be used for public subnets"
Observação
Uma string de descrição não é impressa na saída; portanto, verifique se o label descreve o que ele produz. - Crie um bloco de saída para cada saída.
- Inicie o bloco com a palavra-chave:
Parabéns! Você criou com sucesso uma rede virtual básica usando o Terraform, na sua conta do Oracle Cloud Infrastructure. Você tem uma rede virtual e pode ter concluído neste momento. As próximas seções mostram como personalizar uma rede criada com base em um módulo.
3. Personalizar a Rede
Crie scripts para listas de segurança, sub-redes privadas e sub-redes públicas, para criar a mesma rede virtual que no workflow de criação da Console.
Em Referência de Argumento (oci_core_security_list), localize todos os argumentos necessários (bullets de primeiro nível):
- compartment_id
- vcn_id
Para navegar até Referência de Argumento (oci_core_security_list):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
security list
.Os resultados são retornados para origens de dados e recursos.
- Em Básico, vá para Recursos e selecione oci_core_security_list.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
Declarar a lista de segurança:
- Para compartment_id: use
compartment_id = "<compartment-ocid>"
- Em vcn_id, use o OCID da rede virtual básica. Para designar o OCID antes de conhecê-lo, designe uma saída do módulo como entrada para o recurso da lista de segurança:
- Obtenha o atributo de saída do módulo na página Saídas do módulo.
- Atribua um valor ao argumento do recurso com a expressão:
<resource argument> = module.<module-name>.<output-attribute>
- Exemplo:
vcn_id = module.vcn.vcn_id
oci_core_security_list resource
eoracle-terraform-modules/vcn
usam o mesmo nome de argumento para o OCID da rede virtual na nuvem:vcn_id
.- O
vcn_id
mais à esquerda é o argumento (entrada obrigatória) do recurso. - O
vcn_id
mais à direita é o OCID da VCN que você cria com o módulo. - Não importa se você executou o script do módulo de VCN e criou a VCN ou não. Dessa forma, o Terraform designa o OCID da VCN à lista de segurança após a criação do módulo da VCN.
- Sem Monitoramento de Estado: Não
- Destino: 0.0.0.0/0
- Protocolo IP: Todos os Protocolos
O campo Permite na tabela é gerado automaticamente com base em outros campos. Você não adiciona um argumento para ele em seu script.
Para private-security-list.tf
, vá para Referência de Argumento (oci_core_security_list) e localize os seguintes argumentos:
- egress_security_rules
- sem informações de estado
- destino
- destination_type
- protocolo
Para navegar até Referência de Argumento (oci_core_security_list):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
security list
.Os resultados são retornados para origens de dados e recursos.
- Em Básico, vá para Recursos e selecione oci_core_security_list.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
Use o sinal de igualdade (=
) para designar um valor a um argumento somente dentro do bloco.
- Gravar:
egress_security_rules { <arguments with assigned values> }
- Não escreva:
egress_security_rules = { <arguments with assigned values> }
Para atributos a serem usados como saídas em outputs.tf
, selecione Referência de Atributo para abrir a Referência de Atributos (oci_core_security_list) e localizar os seguintes atributos:
- display_name
- id
Parabéns! Você criou com sucesso uma lista de segurança com uma regra de saída na sua rede virtual na nuvem. Na próxima seção, você adiciona regras de entrada a essa lista de segurança.
Nesta seção, você adiciona as regras de entrada a seguir à lista de segurança criada na seção anterior.
Regras de Entrada
- Regra 1:
- Sem Monitoramento de Estado: Não
- Origem: 10.0.0.0/16
- Protocolo IP: TCP
- Faixa de Portas de Origem: Tudo
- Faixa de Porta de Destino: 22
- Regra 2:
- Sem Monitoramento de Estado: Não
- Origem: 0.0.0.0/0
- Protocolo IP: ICMP
- Tipo e Código: 3, 4
- Regra 3:
- Sem Monitoramento de Estado: Não
- Origem: 10.0.0.0/16
- Protocolo IP: ICMP
- Tipo e Código: 3
O campo Permite na tabela é gerado automaticamente com base em outros campos. Você não adiciona um argumento para ele em seu script.
Parabéns! Você adicionou com sucesso três regras de entrada à sua lista de segurança. Você usa essa lista de segurança para uma sub-rede privada. Você cria outra lista de segurança para uma sub-rede pública na próxima seção.
Em Referência de Argumento (oci_core_security_list), localize os seguintes argumentos:
- ingress_security_rules
- sem informações de estado
- origem
- source_type
- protocolo
- icmp_options
- tipo
- código
- tcp_options
- mínimo
- máximo
Para navegar até Referência de Argumento (oci_core_security_list):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
security list
.Os resultados são retornados para origens de dados e recursos.
- Em Básico, vá para Recursos e selecione oci_core_security_list.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
- Para protocolo, consulte Números de Protocolo:
- TCP: 6
- ICMP: 1
- Para icmp_options, consulte Parâmetros do ICMP (Internet Control Message Protocol).
- Para tcp_options, se você não tiver um intervalo de portas, como Intervalo de Destino: 22, defina o valor máximo e mínimo com o mesmo número. Por exemplo:
- min = 22
- max = 22
Parabéns! Você criou com sucesso outra lista de segurança na sua rede virtual na nuvem.
Nesta seção, você cria uma sub-rede privada na sua rede e associa a lista de segurança privada a essa sub-rede. Você também adiciona a essa sub-rede a tabela de roteamento NAT feita com o módulo de VCN. A tabela de roteamento NAT tem um gateway NAT e um gateway de serviço e foi projetada para sub-redes privadas. Consulte o primeiro diagrama no tutorial.
Parabéns! Você criou com sucesso uma sub-rede privada na sua rede virtual na nuvem.
Em Referência de Argumento (oci_core_subnet), localize todos os argumentos necessários:
- compartment_id
- vcn_id
- cidr_block
Para navegar até Referência de Argumento (oci_core_subnet):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
subnet
.Os resultados são retornados para origens de dados e recursos.
- Em Básico, vá para Recursos e selecione oci_core_subnet.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
- Substitua os seguintes argumentos opcionais:
- route_table_id
- security_list_ids
- display_name
- Atribua valores aos seguintes argumentos:
- cidr_block
- Consulte o primeiro diagrama no tutorial.
- route_table_id
- O OCID de uma tabela de roteamento.
- Para ver os gateways desta tabela de roteamento, faça referência à sub-rede privada no primeiro diagrama do tutorial:
- Gateway NAT
- Gateway de Serviço
- Designe à tabela de roteamento o gateway NAT que você criou com o módulo de VCN. Esta tabela de roteamento também contém um gateway de serviço.Observação
- Use
module.vcn.nat_route_id
. - Não use
module.vcn.nat_gateway_id
, porque ele retorna o OCID do gateway e não a tabela de roteamento.
- Use
- (Opcional): Na Console, revise as regras da tabela de roteamento e compare os valores de Tipo de Destino com o diagrama do tutorial (Gateway de Serviço, Gateway NAT).
- Na página de detalhes da sua VCN, selecione Roteamento ou Tabelas de Roteamento (dependendo do que você vir).
- Selecione nat-route.
- Selecione Regras de Roteamento.
- security_list_ids
- Retorna uma lista de strings, cada uma sendo um OCID de uma lista de segurança.
- Obtenha o OCID da lista de segurança privada.
- Use colchetes para este argumento. Por exemplo:
security_list_ids = ["sec-list-1","sec-list-2","sec-list-3"]
- Para designar uma lista de segurança, coloque-a dentro dos colchetes sem vírgulas.
- Para fazer referência à lista de segurança criada com outro recurso, use seu nome local. Por exemplo:
security_list_ids = [oci_core_security_list.<local-name>.id] security_list_ids = [oci_core_security_list.private-security-list.id]
- cidr_block
Nesta seção, você cria uma sub-rede pública na sua rede e associa a lista de segurança pública a essa sub-rede. Você também adiciona a essa sub-rede a tabela de roteamento da internet feita com o módulo de VCN. A tabela de roteamento da internet tem um gateway de internet e foi projetada para sub-redes públicas. Consulte o primeiro diagrama no tutorial.
Parabéns! Você criou com sucesso uma sub-rede pública na sua rede virtual na nuvem.
Em Referência de Argumento (oci_core_subnet), localize todos os argumentos necessários:
- compartment_id
- vcn_id
- cidr_block
Para navegar até Referência de Argumento (oci_core_subnet):
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
subnet
.Os resultados são retornados para origens de dados e recursos.
- Em Básico, vá para Recursos e selecione oci_core_subnet.
- Selecione Referência de Argumento.
A Referência de Argumento é aberta.
- Substitua os seguintes argumentos opcionais:
- route_table_id
- security_list_ids
- display_name
- Atribua valores aos seguintes argumentos:
- cidr_block
- Consulte o primeiro diagrama no tutorial.
- route_table_id
- O OCID de uma tabela de roteamento.
- Para ver o gateway desta tabela de roteamento, faça referência à sub-rede pública no primeiro diagrama do tutorial:
- Gateway de Internet
- Designe à tabela de roteamento um gateway de internet que você criou com o módulo de VCN.Observação
- Use module.vcn.ig_route_id.
- (Opcional): Na Console, revise as regras da tabela de roteamento e compare o valor do Tipo de Destino com o diagrama do tutorial (Gateway de Internet).
- Na página de detalhes da sua VCN, selecione Roteamento ou Tabelas de Roteamento (dependendo do que você vir).
- Selecione internet-route.
- Selecione Regras de Roteamento.
- security_list_ids
- Retorna uma lista de strings, cada uma sendo um OCID de uma lista de segurança.
- Obtenha o OCID da lista de segurança pública.
- Use colchetes para este argumento. Por exemplo:
security_list_ids = ["sec-list-1","sec-list-2","sec-list-3"]
- Para designar uma lista de segurança, coloque-a dentro dos colchetes sem vírgulas.
- Para fazer referência à lista de segurança criada com outro recurso, use seu nome local. Por exemplo:
security_list_ids = [oci_core_security_list.<local-name>.id] security_list_ids = [oci_core_security_list.public-security-list.id]
- cidr_block
4. Recriar a VCN (Opcional)
Destrua sua VCN. Em seguida, execute novamente seus scripts para criar outra VCN.
Nas seções anteriores, para verificar seu trabalho, você executou seus scripts toda vez que declarou um recurso. Agora, você os executa em conjunto. Você observa que os scripts são declarativos e o Terraform resolve a ordem na qual ele cria os objetos.
Parabéns! Você recriou com sucesso uma rede virtual na nuvem e seus componentes usando o Terraform, na sua conta do Oracle Cloud Infrastructure.
Essa rede virtual na nuvem tem os mesmos componentes de uma rede virtual na nuvem que é criada usando o Assistente Iniciar VCN na Console, com a opção VCN com Conectividade de Internet. Você pode seguir as etapas do tutorial para configurar uma rede e depois comparar com essa rede.
Referências:
O Que Vem a Seguir
Para o próximo tutorial do Terraform, vá para:
Para explorar mais informações sobre desenvolvimento com produtos Oracle, confira estes sites: