Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

mhiland/HomeLab

Open more actions menu

Repository files navigation

HomeLab Infrastructure

Ansible automation for personal HomeLab infrastructure management.

Components

  • 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

Quick Start

SSL Certificates

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 distribute

Vault Deployment

ansible-playbook playbooks/deploy_vault.yml -u <username>

System Patching

# 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/hosts

Docker Installation

ansible-playbook -i ansible/inventories/homelab/hosts ansible/playbooks/install_docker.yml

GitLab Runners

# 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

Jenkins Agents

# 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.yml

Monitoring

ansible-playbook -i inventories/homelab/hosts playbooks/deploy_monitoring.yml

Configuration

  • Ansible: inventories/homelab/group_vars/all.yml
  • Jenkins: Use Ansible Plugin with SSH credentials
  • Examples: See jenkins_job_examples.md for job configurations

Contributing

This is a personal HomeLab project shared for reference. Bug reports and suggestions welcome - see CONTRIBUTING.md.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.