Ansible automation for personal HomeLab infrastructure management.
- SSL Certificates: Internal CA with automated deployment
- HashiCorp Vault: Raft cluster deployment
- System Patching: Jenkins-automated updates
- Docker Installation: Docker CE for ARM64 Raspberry Pi
- GitLab Runners: Docker-based CI/CD runners
- Jenkins Agents: Distributed build agents for Jenkins
- Monitoring Stack: Prometheus exporters
- Synology NAS: SSL certificate renewal
ansible-playbook -i inventories/homelab/hosts playbooks/generate_and_deploy_certs.yml --tags generate
ansible-playbook -i inventories/homelab/hosts playbooks/generate_and_deploy_certs.yml --tags sign
ansible-playbook -i inventories/homelab/hosts playbooks/generate_and_deploy_certs.yml --tags distributeansible-playbook playbooks/deploy_vault.yml -u <username># Jenkins Ansible Plugin (recommended)
# Use "Invoke Ansible Playbook" build step
# Manual execution
ansible-playbook ansible/playbooks/patch_systems_nightly.yml -i inventories/homelab/hosts
ansible-playbook ansible/playbooks/patch_systems_monthly.yml -i inventories/homelab/hostsansible-playbook -i ansible/inventories/homelab/hosts ansible/playbooks/install_docker.yml# Set environment variables
export GITLAB_URL="https://your-gitlab-instance.com"
export GITLAB_RUNNER_TOKEN="glrt-xxxxxxxxxxxxx"
# Deploy runners
ansible-playbook -i ansible/inventories/homelab/hosts ansible/playbooks/deploy_gitlab_runner.yml# Set environment variables
export JENKINS_AGENT_SSH_PUBKEY="ssh-rsa AAAAB3..."
# Deploy agents
ANSIBLE_ROLES_PATH=ansible/roles ansible-playbook -i ansible/inventories/homelab/hosts ansible/playbooks/deploy_jenkins_ssh_agent.yml
# Register agents with Jenkins
export JENKINS_URL="https://jenkins.example.com"
export JENKINS_USER="username"
export JENKINS_TOKEN="api-token"
ansible-playbook -i ansible/inventories/homelab/hosts ansible/playbooks/register_jenkins_ssh_nodes.ymlansible-playbook -i inventories/homelab/hosts playbooks/deploy_monitoring.yml- Ansible:
inventories/homelab/group_vars/all.yml - Jenkins: Use Ansible Plugin with SSH credentials
- Examples: See
jenkins_job_examples.mdfor job configurations
This is a personal HomeLab project shared for reference. Bug reports and suggestions welcome - see CONTRIBUTING.md.
This project is licensed under the MIT License - see the LICENSE file for details.