- Terraform 0.14+
- Packer 1.7+
- Ansible 2.10+
- Credenciais da AWS
Projeto para subir uma infrastutura base e provisionar uma ec2 que irá rodar uma aplicação simples em Nodejs.
Cria recursos como:
- AMI baseada em Ubuntu 20.04
- EC2 instance
**Note: ** Será necessário mudar a zona de disponibilidade tanto no Terraform quanto no Packer.
Executando o packer:
cd packer/Em seguida rodar o comando docker abaixo.
docker run --rm -it -v $PWD:/app -w /app --entrypoint "" hashicorp/packer:light sh Instalar o ansible dentro container do packer:
apk -U add ansibleFazer o export da chaves AWS:
export AWS_ACCESS_KEY_ID=" "
export AWS_SECRET_ACCESS_KEY=" "Build do packer:
packer build packer.pkr.hclNotes: Antes de fazer o build, se desejar, pode rodar um validate antes. "packer validate"
Após o build o packer informará o id da ami.
Executando o Terraform:
cd terraform/Em seguida rodar o comando docker abaixo:
docker run --rm -it -v $PWD:/app -w /app --entrypoint "" hashicorp/terraform:light sh Fazer o export da chaves AWS:
export AWS_ACCESS_KEY_ID=" "
export AWS_SECRET_ACCESS_KEY=" "Executando o terraform plan e apply:
terraform planApós rodar o plano, o terraform irá informar quais recursos ele irá criar na aws, se tudo estiver ok, segue com o apply:
terraform applyAo concluir o processo, o terraform informará o output com o public_ip e dns_ip.
Mais sobre os recursos terraform neste projeto: terrafom-docs.
- Criar Makefile
- Adicionar step do packer no pipeline
- Adicionar testes de infra via molécule
- Desenvolver CRUD da API nodejs
