Skip to main content

Ansible Playbooks

info

Full English translation coming soon.

Ansible is an open-source IT automation tool that enables configuration management, deployment, and infrastructure orchestration. In a homelab context, Ansible has become essential for maintaining reproducible and documented infrastructure.

What is Ansible?

Ansible is an Infrastructure as Code (IaC) tool that allows you to:

  • Automate repetitive system administration tasks
  • Standardize configurations across multiple machines
  • Document infrastructure in executable format (code is documentation)
  • Reproduce identical environments easily
  • Version infrastructure with Git

Project structure

My Ansible infrastructure is available:

Ansible roles

The infrastructure uses several roles:

  • common: Base system configuration, dnsmasq, firewalld, MergerFS
  • cockpit: Web admin interface
  • docker: Docker Engine installation and configuration
  • services: Docker stack deployment

Secrets management

Secrets are encrypted with Ansible Vault and injected via Jinja2 templates into .env files.

Benefits of this approach

  1. Reproducibility: Infrastructure can be recreated identically in minutes
  2. Living documentation: Ansible code documents the infrastructure precisely
  3. Complete automation: No need to SSH for deployment or updates
  4. Security: Secrets are encrypted and never committed in plain text

Current Limitations

Despite its many advantages, this approach has limitations:

  1. Late versioning: The Git repository Infra_ansible_dockercompose was created after the fact to present the work. In the initial practice, Git, automated tests, and CI/CD were not used due to lack of knowledge at the time.
  2. No automated tests: No automatic playbook validation (Molecule, integration tests)
  3. Single-machine infrastructure: Ansible is designed to manage multiple servers, but I only manage one
  4. No CI/CD integration: Deployments are manual, no automated pipeline

These limitations will be addressed in the Future Homelab with the adoption of Kubernetes and GitOps.

note

Detailed English translation of this page is in progress.