Configurando Terraform para o OCI
- fernando freitas do vale
- 13 de out. de 2021
- 4 min de leitura
Atualizado: 29 de set. de 2022

Hoje vamos tratar um tema bem bacana, o Terraform.
O Terraform é uma ferramenta open-source de infraestrutura como código (IaC) que tem suporte para diversos providers, os principais player de Cloud tem suporte para Terraform (AWS,OCI,Azure,GCP).
O Terraform é ideal para automatização de ambientes, como conteiners e outras tecnologias DevOps.
No meu caso, eu crio diversos ambientes em OCI de maneira rotineira, que é um processo repetitivo e cansativo, meu intuito com Terraform foi otimizar esse processo. Por exemplo, hoje eu crio toda a estrutura que preciso, Subnets, Security Lists, Route Table, Instances, sem sequer logar no portal, isso não é bacana?
Nós vamos dividir essa abordagem em 2 posts, o primeiro vamos somente conectar o Terraform na nuvem do OCI e no segundo vamos criar estruturas la dentro como Compartiments, Subnets, VCN, Security List e até mesmo uma Instance completa.
Quais são os passos para a conexão Terraform do Windows e OCI?
1 - Baixar e "instalar" (que na verdade não é instalação) do Terraform
2 - Baixar e instalar o VS Code (Esse não é obrigatório, pode usar qualquer editor de código, o VS Code pra mim é melhor devido as extensões do terraform e do powershell que mais utilizo)
3 - Coletar as informações necessárias para configuração do provider
4 - Configuração das chaves de usuário
5 - Configuração do arquivo provider e arquivos de variáveis.
Vamos para o primeiro item, fazer download do Terraform:
Na página escolha a sua distribuição, aqui estamos utilizando para Windows:

Será feito o download de um .zip, descompacte ele em um local de fácil entendimento no meu caso está em C:\Fernando\Terraform\terraform.exe, mas pode salvar onde fique melhor pra vc.
Em seguida vamos adicionar o path do terraform nas variáveis de ambiente,
Abra o "Executar" e digite "SystemPropertiesAdvanced"

Em seguida vá em "Enviroment Variables" ou "Variáveis de Ambiente" a depender do idioma do SO.

Em "Enviroment Variables" procure por "System variables", em seguida "Path" e vá em "Edit":

Com a janela de edição aberta, adicione o caminho de onde está o Terraform.

Em seguida, rode o comando terraform -version no cmd

Com isso temos o o terraform instalado.
Não entrarei em detalhes da instalação do VS Code, ele é instalação padrão Next-Next-Finish. Mas vou mostrar para instalar a extensão do terraform:

Como ainda não vai estar instalado basta clicar em "Install", o mesmo para a extensão do powershell caso queira.
Primeiro e segundo passo OK, vamos agora baixar as chaves do OCI. Essas chaves podem ser geradas via openssl também mas acho mais fácil assim.
Vá no portal do OCI e logue no seu Tenancy.
Vá no canto superior direito onde fica o avatar, clique nele e vá em "user settings"

Na página do usuário no canto inferior esquerdo em "Resources" acesse o item "Api Keys"

Em seguida vá em "Add API Key"

Como não geramos as chaves em outro lugar, faça download das duas chaves:

No seu diretório home (C:\users\usuario) crie uma pasta chamada ".oci"
Copie as chaves que foram feitos download para lá:

Eu sempre renomeio com o nome do Tenancy pra ficar fácil de identificar.
Agora voltei até a tela do "Add Api Key" e faça upload da chave _public

Será gerado uma prévia do configuration file, copie as informações e salve um notepad ou algum lugar de fácil acesso:

Pronto temos as chaves configuradas:

Com isso vamos agora para o VS Code configurar o provider e fazer a conexão:
Os arquivos do terraform terminam em TF e TFVARS. No caso o TFVARS é onde configuramos as variáveis do ambiente, e o arquivo TF é onde configuramos os demais recursos como providers, data, resources e etc.
Vamos criar um arquivo terminado em .auto.tfvars para configurarmos nossas variáveis, dentro desse arquivo *.auto.tfvars, vamos configurar as variáveis de Tenancy OCID, User OCID, FingerPrint, Key Path, Region e etc. A Oracle recomenda que você defina essas variáveis e exporte como variáveis de ambiente para utilizar no Terraform, eu particularmente prefiro dessa maneira que estou fazendo, atendeu ao que eu precisava. Mas se tiver dúvida:
Vamos lá vamos em agora criar o arquivo .auto.tfvars que iremos precisar:
*A região tem que ser configurada de acordo com a sua, assim como as demais informações.

Em seguida vamos declarar as variáveis que definimos nesse arquivo, ela tem que terminar com a extensão .tf:

Agora vamos criar o arquivo de provider, também terminado em TF:

Lembre-se sempre de salvar os arquivos quando terminar de editar, o salvamento não é automático no VS Code e isso pode dar dor de cabeça na hora de rodar o plan do terraform.
Agora com esses arquivos configurados vá até o terminal (pode ser o cmd, o powershell ou o próprio VS Code) e certifique-se de entrar na pasta onde esta os arquivos tf e tfvars que vc criou
Se for pelo VS Code ele abre automática na pasta que você está criando os arquivos:

Agora rode o comando "terraform init"

Em seguida rode o terraform plan:

Pronto com isso você tem certeza que já está conectado.
Por hoje ficamos por aqui, no próximo vamos configurar recursos dentro do OCI.
Caso queira fazer da uma olhada nessa documentação:
Enjoy!!!
Opmerkingen