Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CloudIaC-Kit Multi-Cloud IaC Starter Kit & CLI

Lint-Security Terraform-Plan License: MIT Author

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.

⚡ Quickstart

Deploy the AWS Dev environment in 3 steps:

  1. Configure Credentials:
    export AWS_ACCESS_KEY_ID="your_key"
    export AWS_SECRET_ACCESS_KEY="your_secret"
  2. Initialize & Apply:
    cd terraform/environments/dev/aws
    terraform init && terraform apply -var="db_password=yoursecurepassword"
  3. Configure Servers:
    cd ../../../../ansible
    ansible-playbook -i <instance_ip>, site.yml

🚀 Overview

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.

🎓 Educational Highlights

  • 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.

🏗 Architecture Diagram

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
Loading

🛠 Features

  • 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.

📂 Structure

  • terraform/modules/: Cloud-specific resource definitions.
  • terraform/environments/: Environment-specific (Dev/Prod) orchestrations.
  • ansible/: Configuration management playbooks.
  • .github/workflows/: Automated CI/CD pipelines.

🏁 Getting Started

Prerequisites

  • Terraform >= 1.0
  • Ansible >= 2.10
  • Cloud credentials (AWS_ACCESS_KEY, etc.)

Deployment (AWS Dev)

  1. Initialize Terraform:
    cd terraform/environments/dev/aws
    terraform init
  2. Plan changes:
    terraform plan
  3. Apply:
    terraform apply

🔐 Security Checks

Run linting and security scans locally:

# TFLint
tflint

# Checkov
checkov -d .

Created with ❤️ for Cloud Engineers.

About

A production-ready Infrastructure as Code (IaC) template supporting AWS, Azure, and GCP. This kit demonstrates architectural best practices, CI/CD integration, and pedagogical documentation in English and French.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages