Skip to content

Ahmed Baha Eddine Alimi - B23-SD-01 [Lab06 + Bonus Task]#2747

Open
3llimi wants to merge 48 commits intoinno-devops-labs:masterfrom
3llimi:lab06
Open

Ahmed Baha Eddine Alimi - B23-SD-01 [Lab06 + Bonus Task]#2747
3llimi wants to merge 48 commits intoinno-devops-labs:masterfrom
3llimi:lab06

Conversation

@3llimi
Copy link

@3llimi 3llimi commented Feb 28, 2026

Lab 06 — Advanced Ansible & CI/CD

What was done:

  • Refactored all three roles (common, docker, web_app) with block/rescue/always structure for error handling and recovery
  • Implemented comprehensive tag strategy (packages, users, docker_install, docker_config, app_deploy) for selective playbook execution
  • Migrated from docker run to Docker Compose with Jinja2-templated docker-compose.yml.j2 supporting dynamic variable substitution
  • Renamed app_deploy role to web_app and configured role dependencies via meta/main.yml to enforce Docker-before-app execution order
  • Implemented double-gated wipe logic (variable + tag) as a "break glass" safety mechanism — tested across all 4 scenarios
  • Automated deployments with GitHub Actions using self-hosted runner on Vagrant VM with ansible-lint at production profile (0 violations)
  • Configured path filters to trigger workflows only on relevant file changes
  • Verified idempotency — second run produces changed=0

Bonus:

  • Deployed second app (3llimi/devops-info-service-go) using role reusability pattern — same web_app role, different variable files, independent ports (8000 vs 8001)
  • Created two independent CI/CD workflows with path filters for isolated per-app deployments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant