Este projeto automatiza a criação de um servidor web para WordPress utilizando Terraform para provisionamento de infraestrutura na AWS e Ansible para configuração dos recursos. A aplicação está distribuída em três containers Docker: Nginx, Apache, e MySQL, garantindo um ambiente robusto e escalável.
- Nginx: Proxy reverso configurado para direcionar o tráfego ao servidor Apache.
- Apache: Servidor web que hospeda a aplicação WordPress.
- PHP: Última versão disponível para compatibilidade com plugins modernos.
- MySQL: Banco de dados em container separado, executando a última versão estável.
- WordPress: Instalado e configurado na versão mais recente, rodando no Apache.
- Terraform: Provisiona a infraestrutura na AWS, incluindo EC2, VPC, subnets, e outros recursos.
- Ansible: Automatiza a instalação e configuração dos containers, além de realizar o deployment do WordPress.
- Docker & Docker Compose: Gerencia os containers de Nginx, Apache, e MySQL, proporcionando um ambiente isolado e escalável.
Você pode realizar o deploy deste projeto de duas maneiras:
- Terraform
- Ansible
- Credenciais AWS configuradas
- Chave.pem da sua conta AWS disponível no diretório raiz do projeto
-
Clone o repositório:
git clone https://github.com/bmsousa1991/wordpress-terraform-docker-aws.git cd wordpress-terraform-docker-aws
-
Configure as variáveis sensíveis no arquivo
terraform.tfvars
. -
Provisione a infraestrutura AWS:
terraform init terraform apply
-
Após a infraestrutura ser criada, configure o ambiente com Ansible:
ansible-playbook -i hosts playbook.yml
-
Crie uma instância EC2 na AWS.
-
Acesse a instância via SSH:
ssh -i caminho/para/sua-chave.pem usuário@ip-da-instância
-
Clone o repositório do projeto:
git clone https://github.com/bmsousa1991/wordpress-terraform-docker-aws.git cd wordpress-terraform-docker-aws
-
Execute o script
install.sh
disponível na raiz do projeto, que automatiza a instalação do Terraform, Ansible, e realiza o deploy do WordPress:./install.sh
Nota: Certifique-se de configurar suas credenciais AWS no script install.sh
antes de executá-lo e que tenha o arquivo chave.pem
no diretório raiz do projeto.
- Nginx: Proxy reverso que redireciona o tráfego para o servidor Apache.
- Apache: Hospeda a aplicação WordPress.
- MySQL (RDS): Banco de dados gerenciado pela AWS, configurado para máxima segurança e escalabilidade.
Toda a infraestrutura é automatizada, permitindo que ela seja facilmente escalável para ambientes de produção.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests para melhorias neste projeto.