Projeto | Tecnologias | Etapas | Licença | Referências
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
- Terraform
- OCI
- Telegram
- Gitlab-CI
- OCI
- Criação de usuário terraform
- Terraform
- Estrutura do código
- 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
- 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 nitro
- Gitlab
- Criação do arquivo
gitlab-ci.yml
com os stages:- prepare (
terraform init
) - validate (
terraform validate
eterraform fmt
) - build (
terraform plan
) - deploy (
terraform apply
) - notificacao (Enviar
notificações
viaapi do telegram
em casos de falha, sucesso e quando o ambiente for destruído) - cleanup (
terraform destroy
)
- prepare (
- Telegram
- Criação do bot e um canal para envio das notificações.
- Ao realizar um commit, um gatilho é disparado inicializando o pipeline.
- Executando os stages definidos no arquivo
gitlab-ci.yml
, parando logo apos o stageplan
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 noplay
.
- 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.
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- 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