Sobre o Desenvolvimento de Componentes de Infraestrutura Usando o Terraform

Os módulos Terraform que você transferiu por download contêm scripts separados para criar e configurar vários componentes de infraestrutura. Você pode exibir e editar esses scripts para entender quais componentes serão criados e as características de cada componente.

O nível-raiz do diretório Terraform contém o arquivo de configuração principal, main.tf, que faz referência aos arquivos de configuração em vários subdiretórios. Esse diretório também contém arquivos que definem variáveis usadas nos arquivos de configuração Terraform ou que contêm informações sobre o provedor Terraform, recursos de dados ou saída. Além disso, os arquivos de configuração do Terraform para criar listas de segurança e tabelas de rota também estão localizados no nível-raiz.

O diretório Terraform contém um diretório modules. O diretório modules contém o seguinte:

  • bastion: Usado para criar hosts do bastion.

  • compute: Usado para criar instâncias do UNIX e do Windows Oracle Cloud Infrastructure Compute .

  • dbsystem: Usado para criar sistemas Oracle Cloud Infrastructure Database .

  • filesystem: Usado para criar o sistema de arquivos do Oracle Cloud Infrastructure File Storage.

  • loadbalancer: Usado para criar instâncias do Oracle Cloud Infrastructure Load Balancing .

  • network: Usado para criar recursos de rede como VCN (Virtual Cloud Network), sub-redes, gateway da Internet, gateway de serviço, gateway de roteamento dinâmico (DRG) e gateway de tradução do endereço de rede (NAT).

Sobre os Componentes da Infraestrutura a Serem Criados

Antes de criar quaisquer componentes de infraestrutura, você deve fornecer alguma entrada sobre o tipo, o número e a distribuição de seus componentes. Por exemplo, você pode especificar quantas instâncias da aplicação você precisa, se deseja que todos os seus recursos sejam criados em um único domínio de disponibilidade ou em dois domínios de disponibilidade, a edição e a versão do banco de dados que deseja em seus Sistemas de BD, e assim por diante.

Você usa o arquivo terraform.tfvars no nível-raiz do diretório Terraform para fornecer essa entrada. Abra o arquivo terraform.tfvars em um editor de texto e insira as informações necessárias. Consulte o README fornecido no diretório do nível raiz para obter os valores sugeridos que você pode usar neste arquivo.

Os módulos Terraform, por padrão, criam componentes em dois domínios de disponibilidade. Isso é governado pelo valor da variável AD no arquivo terraform.tfvars. Você pode exibir ou modificar os domínios de disponibilidade que serão usados para hospedar seus componentes de infraestrutura editando este valor. Para criar componentes em um único domínio de disponibilidade, defina o valor de AD para o domínio de disponibilidade necessário 1, 2, or 3, no arquivo terraform.tfvars. Se você quiser criar componentes em dois domínios de disponibilidade, especifique ou modifique os números dos domínios de disponibilidade.

Se você aplicar os arquivos de configuração Terraform usando os valores padrão sugeridos sem fazer alterações, os seguintes componentes de infraestrutura serão criados em dois domínios de disponibilidade.

  • Uma VCN com o nome psftvcn e a faixa de endereços IP 172.16.0.0/16.

  • Dezesseis sub-redes, oito em cada domínio de disponibilidade. Cada sub-rede tem um CIDR /24. Por exemplo: 172.16.4.0/24. O número sufixo para o nome de cada sub-rede indica o domínio de disponibilidade no qual a sub-rede é criada.

    • As sub-redes privadas dos servidores de aplicações, com o nome appsubad1 e appsubad2.

    • As sub-redes privadas dos servidores Web, com o nome websubad1 e websubad2.

    • As sub-redes privadas para os balanceadores de carga, com o nome lbsubad1 e lbsubad2.

    • As sub-redes privadas dos sistemas de banco de dados, com o nome dbsubad1 e dbsubad2.

    • As sub-redes privadas dos servidores ElasticSearch, com o nome essubad1 e essubad2

    • As sub-redes privadas das instâncias do PeopleTools, com o nome toolsssubad1 e toolssubad2.

    • As sub-redes privadas do serviço do sistema de arquivos, com o nome fsssubad1 e fsssubad2.

    • As sub-redes públicas para os hosts de bastão, com o nome bassubad1 e bassubad2.

  • As seguintes tabelas de rota. O label DNS para a VCN especificada no arquivo terraform.tfvars é prefixado para o nome de cada tabela de roteamento.

    • A tabela de rota padrão, que não tem regras.

    • Uma tabela de roteamento privada, psftvcnpvtrt, que tem regras de rota para rotear o tráfego do Object Storage para o gateway de serviço e todo outro tráfego para a instância NAT.

    • Uma tabela de rota pública, psftvcnpubrt, que tem uma regra de rota para rotear o tráfego para o gateway da internet.

  • As seguintes listas de segurança:

    • A lista de segurança padrão.

    • Uma lista de segurança para a sub-rede dos servidores de aplicativos, com o nome AppSecList .

    • Uma lista de segurança para a sub-rede de hosts de bastion, com o nome BastionSecList.

    • Uma lista de segurança para a sub-rede do banco de dados, com o nome DBSecList.

    • Uma lista de segurança para a sub-rede do servidor ElasticSearch, com o nome ESSecList.

    • Uma lista de segurança para a sub-rede do servidor do sistema de arquivos, com o nome FSSSecList.

    • Uma lista de segurança para a sub-rede do balanceador de carga, com o nome LBSecList.

    • Uma lista de segurança para a sub-rede PeopleTools, com o nome PToolsSecList.

    • Uma lista de segurança para a sub-rede do servidor Web, com o nome WebSecList.

  • Um gateway de internet, com o nome psftvcnigw. O label DNS especificado no arquivo terraform.tfvars é prefixado ao nome do gateway de internet. O gateway da internet conecta a borda da rede na nuvem com a internet. O tráfego da sua VCN para um endereço IP público fora da VCN passa pelo gateway de internet.

  • Um gateway de roteamento dinâmico, com o nome psftvcndrg. O nome do label DNS especificado no arquivo terraform.tfvars é prefixado para o nome do gateway de roteamento dinâmico. O gateway de roteamento dinâmico fornece um caminho para o tráfego entre sua VCN e destinos diferentes da internet, por exemplo, tráfego para sua rede local usando IPSec VPN ou Oracle Cloud Infrastructure FastConnect ou tráfego para uma VCN em outra região usando pareamento remoto de VCN.

  • Um gateway de serviço, com o nome psftvcnsvcgtw. O nome do label DNS especificado no arquivo terraform.tfvars é prefixado para o nome do gateway de serviço. O gateway de serviço permite que sua VCN acesse serviços públicos do Oracle Cloud Infrastructure , como o Oracle Cloud Infrastructure Object Storage , mas sem expor a VCN à internet pública.

  • As instâncias do Oracle Cloud Infrastructure Compute a seguir, distribuídas nos dois domínios de disponibilidade. O prefixo do ambiente especificado no arquivo terraform.tfvars é prefixado para o nome de cada instância, e a região, o número do domínio de disponibilidade e a contagem são sufixados. Cada instância tem um volume de inicialização associado.

    • Servidores de aplicativos. O número de instâncias do servidor de aplicativos criadas e suas formas são determinadas por valores especificados no arquivo terraform.tfvars.

    • Hosts bash.

  • Dois sistemas Oracle Cloud Infrastructure Database , um em cada domínio de disponibilidade. O nome, a versão, a edição e outras propriedades dos sistemas Oracle Cloud Infrastructure Database são determinadas pelos valores que você especifica no arquivo terraform.tfvars. Os sistemas Oracle Cloud Infrastructure Database são criados na sub-rede do banco de dados dbsubad1 e dbsubad2.

  • Um sistema de arquivos usado para preparar o software PeopleSoft é criado. O sistema de arquivos é criado na sub-rede do sistema de arquivos, fssubad1. O sistema de arquivos é montado em todas as instâncias do Oracle Cloud Infrastructure Compute .

  • Dois balanceadores de carga, um em cada domínio de disponibilidade. O prefixo do ambiente especificado no arquivo terraform.tfvars é prefixado para o nome de cada balanceador de carga, e a região e a contagem são sufixados. Os balanceadores de carga estão na sub-rede dos servidores web, websubad1 e websubad2. O conjunto de backend e os listeners dos balanceadores de carga também são criados.

Criar Componentes de Infraestrutura Usando o Terraform

Após instalar o Terraform junto com o provedor OCI e definir as variáveis do ambiente no sistema local, você estará pronto para aplicar os módulos Terraform a fim de criar os componentes de infraestrutura no Oracle Cloud Infrastructure .

  1. No sistema local, abra um terminal ou inicie o PowerShell do Windows. Navegue até o diretório em que os módulos Terraform estão localizados.
  2. Digite: terraform apply
  3. Quando for solicitado a confirmar a ação, informe yes.
O Terraform começa a criar todos os componentes especificados nos módulos Terraform no diretório atual. A saída mostra objetos que estão sendo criados. Alguns objetos, por exemplo, sistemas de banco de dados, podem demorar muito para serem criados. Quando todos os componentes tiverem sido criados, o Terraform exibirá uma mensagem de conclusão. Por exemplo: Apply complete! Resources: 90 added, 0 changed, 0 destroyed.

Na seção Outputs da saída do comando, o Terraform exibe os endereços IP públicos e privados das instâncias que foram criadas. Anote os endereços IP das instâncias às quais você deseja se conectar.

Se você encontrar algum erro, poderá corrigi-los e executar terraform apply novamente. Certifique-se de executar novamente este comando no mesmo diretório em que você executou este comando pela primeira vez. A Terraform verifica o estado atual dos componentes e cria os componentes que não existem. Observe, no entanto, que se você executar o Terraform em um diretório diferente ou em um sistema local diferente que tenha os mesmos módulos Terraform, o Terraform trata isso como um novo conjunto e cria todos os recursos especificados nos diversos arquivos de configuração. Se você quiser executar o Terraform em um diretório ou sistema local diferente para gerenciar os recursos existentes, copie os arquivos de estado do Terraform do diretório existente para o novo diretório ou sistema. Em geral, no entanto, é recomendável que você não use o Terraform em um sistema ou diretório para gerenciar componentes criados pelo Terraform em outro sistema ou diretório.