Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leoviana00/tcb-terraform-niture
The Cloud Bootcamp - Desafio módulo 4 - Sheep HA
https://github.com/leoviana00/tcb-terraform-niture
cicd gitlabci oci telegram terraform
Last synced: 9 days ago
JSON representation
The Cloud Bootcamp - Desafio módulo 4 - Sheep HA
- Host: GitHub
- URL: https://github.com/leoviana00/tcb-terraform-niture
- Owner: leoviana00
- License: mit
- Created: 2022-04-30T02:00:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-03T10:49:07.000Z (almost 3 years ago)
- Last Synced: 2024-11-25T14:12:09.081Z (2 months ago)
- Topics: cicd, gitlabci, oci, telegram, terraform
- Language: HCL
- Homepage:
- Size: 1.44 MB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
The Cloud Bootcamp
Projeto |
Tecnologias |
Etapas |
Licença |
Referências
## 🌱 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.
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
2. Terraform
- Estrutura do código
- Variáveis para o acesso
```console
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
- Serão utilizadas dentro do arquivo `.gitlab-ci.yml`
- Criação dos arquivos `.tf` para criar os seguintes recursos:
- vcn
- subnet
- security list
- route table
- internet gateway
- 2 instâncias
- loadbbalancer
- deploy do nitro3. 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`)4. 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.
- 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.
- Notificação no telegram
- Caso esteja tudo certo, disparamos o `apply` manualmente clicando no `play`.
- Ao final do processo, receberemos o ip do `loadbalancer`.
- Vamos fazer uma verificação na `OCI` para verificar se os recursos foram criados.
- Instâncias criadas
- Loadbalancer criado
- Backends configurados
- Agora por fim, vamos verificar se conseguimos acessar o nitro através do ip do loadbalancer.
- 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.
- Apos a finalização, uma notificação será enviada.
## 📄 Licença
Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.## 🙇 Referências
- https://github.com/mlinxfeld/foggykitchen_tf_oci_course
- https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/load_balancer_backend
- https://docs.oracle.com/en-us/iaas/Content/Balance/Concepts/balanceoverview.htm
- https://docs.gitlab.com/ee/ci/
- https://core.telegram.org/bots/api