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 IP172.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
eappsubad2
. -
As sub-redes privadas dos servidores Web, com o nome
websubad1
ewebsubad2
. -
As sub-redes privadas para os balanceadores de carga, com o nome
lbsubad1
elbsubad2
. -
As sub-redes privadas dos sistemas de banco de dados, com o nome
dbsubad1
edbsubad2
. -
As sub-redes privadas dos servidores ElasticSearch, com o nome
essubad1
eessubad2
-
As sub-redes privadas das instâncias do PeopleTools, com o nome
toolsssubad1
etoolssubad2
. -
As sub-redes privadas do serviço do sistema de arquivos, com o nome
fsssubad1
efsssubad2
. -
As sub-redes públicas para os hosts de bastão, com o nome
bassubad1
ebassubad2
.
-
-
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 arquivoterraform.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 arquivoterraform.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 arquivoterraform.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 dadosdbsubad1
edbsubad2.
-
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
ewebsubad2.
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 .
- 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.
- Digite:
terraform apply
- Quando for solicitado a confirmar a ação, informe
yes.
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.