Skip to content

Mounik/devops-toolkit

Repository files navigation

πŸ›‘οΈ DevOps Toolkit

CI Security License Ansible Terraform Kubernetes

Infrastructure-as-Code, sΓ©curitΓ©, monitoring et automatisation – production-grade.

Ce repo est mon portfolio technique : il démontre ma capacité à concevoir, sécuriser et opérer une infrastructure complète de bout en bout.


πŸ“ Architecture Overview

Architecture Diagram

flowchart TB
    subgraph Cloud["☁️ Cloud AWS"]
        subgraph VPC["VPC 10.0.0.0/16"]
            subgraph Public["Public Subnets"]
                LB["🌐 ALB / Ingress"]
                Bastion["πŸ” Bastion Host"]
            end
            subgraph Private["Private Subnets"]
                subgraph EKS["☸️ Kubernetes Cluster"]
                    App1["App Pod"]
                    App2["App Pod"]
                end
                Monitoring["πŸ“Š Prometheus + Grafana"]
            end
        end
    end

    subgraph CI_CD["πŸ”„ GitHub Actions"]
        Lint["Lint (ansible-lint, shellcheck, hadolint)"]
        Sec["Security (Trivy)"]
        Test["Tests (Molecule)"]
    end

    subgraph IaC["βš™οΈ IaC"]
        TF["Terraform"]
        ANS["Ansible"]
    end

    subgraph Tooling["🧰 Tooling"]
        DC["Docker Compose"]
        Helm["Helm Charts"]
        Scripts["Shell Scripts"]
    end

    CI_CD -- Deploy --> TF
    TF -- Provision --> VPC
    ANS -- Harden --> Bastion
    ANS -- Harden --> EKS
    Helm -- Deploy --> EKS
    Monitoring -- Collect --> App1
    Monitoring -- Collect --> App2
Loading

🎯 Skills Demonstrated

Domain Tools & Practices Level
Cloud AWS (VPC, EC2, IAM, S3), Terraform, Terragrunt ⭐⭐⭐
Containers Docker, Docker Compose, BuildKit, distroless ⭐⭐⭐
Orchestration Kubernetes, Helm, HPA, PDB, NetworkPolicies, RBAC ⭐⭐⭐
IaC Ansible (Molecule), Terraform (modules, workspaces), Cloud-init ⭐⭐⭐
CI/CD GitHub Actions, Trivy, pre-commit, semantic release ⭐⭐⭐
Security CIS benchmarks, fail2ban, IMDSv2, encrypted volumes, least-privilege, seccomp ⭐⭐⭐
Monitoring Prometheus, Grafana, node_exporter ⭐⭐
Scripting Bash (POSIX, shellcheck-clean), Python ⭐⭐⭐

πŸ“‚ What's Inside

πŸ”’ Ansible Playbooks (idempotent, CIS-aligned)

Playbook Description Tests
ansible/hardening/ SSH, UFW, sysctl, auditd, fail2ban, auto-updates Molecule + Testinfra
ansible/docker-install/ Docker CE + Compose, daemon hardening Ad-hoc
ansible/monitoring-setup/ Prometheus node_exporter + Grafana Agent Ad-hoc
ansible/backup/ Restic automated backups with rotation Ad-hoc

πŸ—οΈ Terraform Modules

cd terraform/environments/dev
terraform init
terraform plan
Module Features
modules/vpc/ Multi-AZ, public/private, IGW, NAT-ready, SG with least-privilege
modules/compute/ Encrypted EBS, IMDSv2, SSM access, cloud-init bootstrap

☸️ Kubernetes

Artifact Security Features
kubernetes/base/deployment.yaml Non-root, read-only root FS, drop: ALL capabilities, seccomp, resource limits
kubernetes/monitoring/ ServiceMonitor, Grafana dashboard ConfigMap
kubernetes/helm/ Production Helm chart with HPA, PDB, NetworkPolicy

🐳 Docker

File Highlights
compose-template Security opts, cap_drop, healthchecks, log rotation, resource limits
Dockerfile.* Multi-stage, non-root, npm ci --only=production, minimal attack surface

πŸ“œ Shell Scripts

Tous les scripts passent shellcheck -S warning : set -euo pipefail, variables quoted, pas de eval.

Script Use Case
server-init.sh Bootstrap serveur frais (Debian/Ubuntu)
docker-cleanup.sh Nettoyage sΓ©curisΓ© + dry-run
health-check.sh Rapport complet (text / JSON)
ssl-check.sh VΓ©rification certificats
backup-db.sh Backup PostgreSQL/MySQL avec rotation

πŸ”„ CI/CD

Workflow Outcome
ci.yml shellcheck + ansible-lint + yamllint + hadolint + molecule + terraform fmt + k8s dry-run
security.yml Trivy filesystem scan β†’ SARIF β†’ GitHub Security tab
pre-commit Hooks locaux avant chaque commit

πŸš€ Quick Start

1. Ansible β€” Hardening a server

ansible-playbook ansible/hardening/main.yml -i inventory.ini -u admin --limit production

2. Terraform β€” Spin up infrastructure

cd terraform/environments/dev
export AWS_PROFILE=default
terraform init
terraform plan -var="ssh_key_name=my-key"
terraform apply

3. Kubernetes β€” Deploy to cluster

kubectl apply -f kubernetes/base/
helm upgrade --install app kubernetes/helm/devops-toolkit

4. Local development

make setup   # Install pre-commit, linters
make lint    # Run all linters
make test    # Run Molecule tests
make all     # Full CI simulation locally

πŸ›‘οΈ Security Highlights

Layer Hardening
OS CIS-aligned sysctl, SSH (no root, no password), fail2ban, UFW, auditd
Cloud IMDSv2 enforced, encrypted EBS, SSM (no SSH key needed), least-privilege SG
Containers Non-root, read-only root fs, cap_drop: ALL, health checks, resource limits
K8s NetworkPolicies, PodSecurityStandards restricted, RBAC, HPA, PDB
CI/CD Trivy scan on every push + weekly schedule, SARIF upload, no secrets in code

πŸ“ Directory Structure

devops-toolkit/
β”œβ”€β”€ ansible/
β”‚   β”œβ”€β”€ hardening/           # CIS-inspired hardening (molecule tested)
β”‚   β”œβ”€β”€ docker-install/      # Docker CE setup
β”‚   β”œβ”€β”€ monitoring-setup/    # Node exporter + metrics
β”‚   └── backup/              # Restic backup automation
β”œβ”€β”€ terraform/
β”‚   β”œβ”€β”€ modules/
β”‚   β”‚   β”œβ”€β”€ vpc/             # Reusable VPC module
β”‚   β”‚   └── compute/         # Reusable EC2 module
β”‚   └── environments/
β”‚       β”œβ”€β”€ dev/             # Dev workspace
β”‚       β”œβ”€β”€ staging/         # Staging workspace
β”‚       └── prod/            # Prod workspace
β”œβ”€β”€ kubernetes/
β”‚   β”œβ”€β”€ base/                # Deployments, Services, HPA, NetworkPolicy, PDB
β”‚   β”œβ”€β”€ monitoring/          # Prometheus ServiceMonitor, Grafana Dashboard
β”‚   └── helm/devops-toolkit/ # Production Helm chart
β”œβ”€β”€ docker/
β”‚   β”œβ”€β”€ compose-template/    # Secure docker-compose.yml
β”‚   └── healthcheck-images/  # Multi-stage, non-root Dockerfiles
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ server-init.sh       # Server bootstrap (shellcheck clean)
β”‚   β”œβ”€β”€ docker-cleanup.sh    # Safe cleanup
β”‚   β”œβ”€β”€ health-check.sh      # Reporting
β”‚   β”œβ”€β”€ ssl-check.sh         # SSL monitoring
β”‚   └── backup-db.sh         # DB backup with rotation
β”œβ”€β”€ ci/                      # CI/CD templates (GitHub Actions + GitLab CI)
β”œβ”€β”€ .github/workflows/       # CI pipelines
β”œβ”€β”€ Makefile                 # Unified build orchestration
β”œβ”€β”€ requirements.yml           # Ansible collections
└── .pre-commit-config.yaml  # Pre-commit hooks

πŸ”§ Tooling Matrix

Tool Version Purpose
Ansible 2.16+ Server configuration
Terraform 1.9+ Cloud infrastructure
Kubernetes 1.29+ Container orchestration
Helm 3.15+ K8s package management
Docker 24.x+ Containerization
shellcheck 0.9+ Shell script quality
ansible-lint 6.22+ Ansible quality
Trivy 0.50+ Security scanning

πŸ“ Notes for Recruiters

Ce dΓ©pΓ΄t est conΓ§u comme preuve opΓ©rationnelle de mes compΓ©tences. Chaque composant est :

  • Lint-clean (shellcheck 0 warnings, ansible-lint 0 violations, hadolint pass)
  • TestΓ© (Molecule pour Ansible, CI sur chaque push)
  • SΓ©curisΓ© (CIS, least-privilege, Trivy scan, encrypted Γ  tous les niveaux)
  • DocumentΓ© (README, inline comments, Makefile avec make help)

N'hΓ©sitez pas Γ  explorer les playbooks, les modules Terraform, et la CI. Un make all suffit pour reproduire l'intΓ©gralitΓ© des vΓ©rifications.


License: MIT β€” libre de rΓ©utilisation avec attribution.

About

Production-ready Ansible playbooks, shell scripts & CI/CD pipelines for Linux hardening, Docker management, monitoring & automation. Battle-tested from 7+ years of sysadmin & DevOps work.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors