A production-ready Infrastructure as Code (IaC) template supporting AWS, Azure, and GCP With CLI mode. This kit demonstrates architectural best practices, CI/CD integration, and pedagogical documentation in English and French.
Deploy the AWS Dev environment in 3 steps:
- Configure Credentials:
export AWS_ACCESS_KEY_ID="your_key" export AWS_SECRET_ACCESS_KEY="your_secret"
- Initialize & Apply:
cd terraform/environments/dev/aws terraform init && terraform apply -var="db_password=yoursecurepassword"
- Configure Servers:
cd ../../../../ansible ansible-playbook -i <instance_ip>, site.yml
This repository provides reusable Terraform modules and Ansible playbooks to deploy a standardized web architecture across multiple cloud providers. It is designed both as a production template and as a learning resource.
- Bilingual Documentation: Every file contains detailed comments in English and French explaining the why behind each resource.
- Architectural Patterns: Demonstrates VPC isolation, public/private subnet logic, and tiered security.
- Best Practices: Integrated linting, security scanning, and managed database patterns.
graph TD
subgraph "Cloud Provider (AWS/Azure/GCP)"
VPC[VPC/VNet]
subgraph "Public Subnets"
LB[Load Balancer]
VM1[Web Server 1]
VM2[Web Server 2]
end
subgraph "Private Subnets"
DB[(Database RDS/SQL)]
end
end
GitHub[GitHub Actions] -->|terraform apply| VPC
GitHub -->|ansible-playbook| VM1
GitHub -->|ansible-playbook| VM2
User((User)) --> LB
LB --> VM1
LB --> VM2
VM1 --> DB
VM2 --> DB
- Multi-Cloud Support: Modular design for AWS, Azure, and GCP.
- Security First:
- Integrated Checkov for security scanning.
- TFLint for infrastructure linting.
- Private subnets for databases.
- CI/CD Driven: GitHub Actions workflows for automated testing and deployment.
- Configuration Management: Ansible roles for Nginx setup and OS hardening.
terraform/modules/: Cloud-specific resource definitions.terraform/environments/: Environment-specific (Dev/Prod) orchestrations.ansible/: Configuration management playbooks..github/workflows/: Automated CI/CD pipelines.
- Terraform >= 1.0
- Ansible >= 2.10
- Cloud credentials (AWS_ACCESS_KEY, etc.)
- Initialize Terraform:
cd terraform/environments/dev/aws terraform init - Plan changes:
terraform plan
- Apply:
terraform apply
Run linting and security scans locally:
# TFLint
tflint
# Checkov
checkov -d .Created with ❤️ for Cloud Engineers.