Este projeto faz parte da minha jornada de aprendizado em DevOps e Cloud Computing. Ele demonstra o provisionamento automatizado de uma instância EC2 na AWS utilizando Terraform e a configuração de um servidor web Nginx através do Ansible.
- Terraform: Orquestração de infraestrutura (IaC).
- Ansible: Gerenciamento de configuração.
- AWS (EC2, Security Groups, Key Pairs): Provedor de Nuvem.
- Ubuntu (WSL): Ambiente de desenvolvimento.
- Geração automática de pares de chaves SSH (RSA 4096 bits).
- Criação de Security Groups com regras específicas para HTTP (80) e SSH (22).
- Provisionamento de instância EC2 (t3.micro) com Amazon Linux 2023.
- Instalação e configuração automática do Nginx e Git.
- Deploy automático de um site exemplo.
- Ter o AWS CLI configurado com suas credenciais.
- Ter o Terraform e Ansible instalados no seu ambiente (WSL recomendado).
- Clone o repositório:
git clone [https://github.com/SEU_USUARIO/iac-com-terraform-e-aws.git](https://github.com/SEU_USUARIO/iac-com-terraform-e-aws.git) cd iac-com-terraform-e-aws
2. Inicialize o Terraform:
```bash
terraform init
- Planeje e aplique a infraestrutura:
terraform plan
terraform apply -auto-approve
- Execute o Playbook do Ansible:
ansible-playbook -i inventory playbook.yml
- Acesse o site através do IP público gerado nos outputs do Terraform.
O projeto segue boas práticas de segurança, como:
- Restrição de acesso SSH apenas para o IP público do desenvolvedor (configurado via variáveis).
- Uso de
.gitignorepara evitar o vazamento de chaves privadas (.pem) e arquivos de estado (.tfstate). - Destruição total do ambiente após o uso com
terraform destroy.