top of page

Configurando Terraform para o OCI

  • Foto do escritor: fernando freitas do vale
    fernando freitas do vale
  • 13 de out. de 2021
  • 4 min de leitura

Atualizado: 29 de set. de 2022


ree

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:


ree

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"



ree

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



ree


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



ree

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




ree

Em seguida, rode o comando terraform -version no cmd



ree

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:



ree

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"



ree

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



ree

Em seguida vá em "Add API Key"



ree

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



ree

No seu diretório home (C:\users\usuario) crie uma pasta chamada ".oci"

Copie as chaves que foram feitos download para lá:



ree

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



ree

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


ree

Pronto temos as chaves configuradas:


ree

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.


ree

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





ree

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







ree

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:



ree

Agora rode o comando "terraform init"



ree

Em seguida rode o terraform plan:



ree

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!!!

 
 
 

Comentários


bottom of page