Skip to content

justsomescripts/ansible-project-homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ansible Homelab

This repository houses Ansible resources for configuring my personal homelab. It covers the setup of physical hosts, such as configuring UPS systems and ZFS Event Daemon with Postfix as an SMTP relay for critical issue notifications, as well as declarations for virtual machines.

📚 Table of Contents

(back to top)

ℹ️ About The Project

This project aims to be completely declarative and able to bootstrap an empty environment in to use for disaster recovery and initial setup. The roles are written to be re-usable and independent of the underlying Linux OS family. All roles are used / tested on Debian-based systems.

Built with Ansible

(back to top)

✈️ Getting Started

The following is necessary to start using this repository:

Required packages:

  • ansible
  • sshpass (for initial setup)
  • python-passlib
  • jq
  • python-jmespath

Optional packages:

  • bitwarden-cli (for getting secrets)
  • sshpass (for populating public SSH keys during initial setup)

Ansible collections:

  • ansible.builtin
  • community.general (for bitwarden lookups)
  • community.proxmox

Installation example on Arch (btw)

The ansible package includes all required collections

sudo pacman --sync ansible sshpass python-passlib jq python-jmespath

Role documentation:

📖 Usage

The Playbooks should be called using the site.yaml Playbook. It includes tags for various combination of steps:

ansible-playbook site.yaml --tags init                 # bootstrap a new environment
ansible-playbook site.yaml --tags init --limit proxmox # bootstrap all proxmox nodes environment
ansible-playbook site.yaml --tags upgrade              # upgrade all systems

(back to top)

🛣 Roadmap

  • Systemd-nspawn containers on TrueNAS Scale (Jailmaker)
  • Centralized monitoring/logging
  • Migrate Nextcloud to systemd-nspawn (currently Scale app)
  • Migrate gitea to systemd-nspawn (currently Scale app)
  • Migrate Paperless-NGX to systemd-nspawn (currently Scale app)
  • Migrate external proxy (FRP) to simple tunnel (Wireguard)

Not planned due to introduction of systemd-nspawn on TrueNAS Scale

See the open issues for a full list of proposed features (and known issues).

(back to top)

📬 Contact

David Gries - @dgries - mail@dgries.de

(back to top)