Skip to content

leoviana00/tcb-terraform-niture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Cloud Bootcamp

DevOps License

Projeto   |    Tecnologias   |    Etapas   |    Licença   |    Referências

DevOps

🌱 Projeto

No Projeto Cloud Implementação Compute, você fará o deploy do website niture usando um script. Mas ainda assim, você precisará logar via ssh no webserver e fazer a sua execução manualmente. Com isso, no Desafio Sheep HA, pense como consegue plugar esse script dentro da execução para que consiga fazer a automação de ponta a ponta. Pois, com todos os casos de lockdown, pandemia e tudo o que o mundo está vivendo,qualquer negócio que tenha o seu site ou a sua página indisponibilizada na internet estáperdendo dinheiro. Além disso, pense como implementar alta disponibilidade nessa camada, para garantir que sehouver um problema com o webserver, você tenha algum mecanismo para que o outro assuma e não tenha indisponibilidade no site da loja de móveis de luxo que está online a todo vapor.

DevOps

Fará uma utilização legal da pista do Desafio Sheep HA, se você souber utilizar os doiscomponentes indicados: Documentação do Terraform+ Documentação da Oracle CloudInfrastructure. Além das documentações, existe uma solução que está praticamente prontaem um repositórioGithub perdido pela Internet. Portanto, se você for excelente durante apesquisa, o seu sucesso no Desafio Sheep HA está garantido.Preparado para iniciar? Com toda certeza, sim!Desejo sucesso no aprofundamento do seu conhecimento em Terraform + Github. Um excelentedesafio. Se lembre sempre: Para um Bootcamper, missão dada é missão cumprida. #pracima

✨ Tecnologias

  • Terraform
  • OCI
  • Telegram
  • Gitlab-CI

🚀 Etapas

  1. OCI
  • Criação de usuário terraform
  1. Terraform
  • Estrutura do código

DevOps

  • Variáveis para o acesso
export TF_VAR_private_key=${private_key}
export TF_VAR_ssh_public_key=${ssh_public_key}
export TF_VAR_fingerprint=${fingerprint}
export TF_VAR_user_ocid=${user_ocid}
export TF_VAR_compartment_ocid=${compartment_ocid}
export TF_VAR_tenancy_ocid=${tenancy_ocid}
export TF_VAR_region=${region}
  • Essa variábeis serão criadas dentro do gitlab

gitlab

  • Serão utilizadas dentro do arquivo .gitlab-ci.yml

gitlab

  • Criação dos arquivos .tf para criar os seguintes recursos:
    • vcn
    • subnet
    • security list
    • route table
    • internet gateway
    • 2 instâncias
    • loadbbalancer
    • deploy do nitro
  1. Gitlab
  • Criação do arquivo gitlab-ci.yml com os stages:
    • prepare (terraform init)
    • validate (terraform validate e terraform fmt)
    • build (terraform plan)
    • deploy (terraform apply)
    • notificacao (Enviar notificações via api do telegram em casos de falha, sucesso e quando o ambiente for destruído)
    • cleanup (terraform destroy)
  1. Telegram
  • Criação do bot e um canal para envio das notificações.

Execução

  • Ao realizar um commit, um gatilho é disparado inicializando o pipeline.

pipeline

  • Executando os stages definidos no arquivo gitlab-ci.yml, parando logo apos o stage plan ser executado, após isso será enviada uma notificação para o grupo no telegram, podemos fazer uma verificação do plan.

pipeline

  • Notificação no telegram

pipeline

  • Caso esteja tudo certo, disparamos o apply manualmente clicando no play.

pipeline

  • Ao final do processo, receberemos o ip do loadbalancer.

pipeline

pipeline

  • Vamos fazer uma verificação na OCI para verificar se os recursos foram criados.

  • Instâncias criadas

pipeline

  • Loadbalancer criado

pipeline

pipeline

  • Backends configurados

pipeline

  • Agora por fim, vamos verificar se conseguimos acessar o nitro através do ip do loadbalancer.

pipeline

  • Pronto, dessa forma subimos uma infraestrutura na OCI e deployamos o site do nitro em duas instâncias onde temos um loadbalancer na frente delas fazendo o balanceamento das requisições, caso uma fique fora por algum motivo, o site não fica fora do ar por ter uma segunda instância. Agora que o lab foi finalizado, podemos destruir o ambiente.

pipeline

  • Apos a finalização, uma notificação será enviada.

pipeline

pipeline

📄 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🙇 Referências

About

The Cloud Bootcamp - Desafio módulo 4 - Sheep HA

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published