Skip to content

🏡 Homelab Pull 💪

task ci

An ansible-pull repo for my homelab.


📌 TL;DR

🗃 Repo

Code

cp host_vars/.template.yaml.tmpl host_vars/<hostname>.yaml

Edit host_vars/<hostname>.yaml

💻 Managed Node

Code

(
  sudo apt update && \
  sudo apt install -y curl && \
  OWNER_NAME="nicholaswilde" && \
  REPO_NAME="homelab-pull" && \
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/${OWNER_NAME}/${REPO_NAME}/refs/heads/main/scripts/bootstrap.sh)"
)

Optionally, add ~/.local/bin to PATH.

Code

export PATH=$PATH:$HOME/.local/bin

Run ansible-pull.

Code

ansible-pull -U https://github.com/nicholaswilde/homelab-pull.git -i "$(uname -n),"

🖼 Background

I'm currently using ansible to push configurations to my homelab containers via SSH. See my Homelab Playbooks repo.

This repo is meant to be a test of using GitOps, similar to Flux CD, to configure my homelab by having each container pull this repo periodically and run ansible locally. Pros of this method are discussed in this Learn Linux TV video.

A downside is that ansible-pull needs to be installed on all containers, thus taking up resources, which goes against my general homelab methodology.

Container specific updates are handled using a Taskfile located on the container. The upgrades are configured in my homelab repo and are periodically triggered by this repo.


💡 Inspiration

Inspiration for this repository has been taken from jktr/ansible-pull-example.


⚖ License

​Apache License 2.0

📝​Author

​This project was started in 2025 by ​Nicholas Wilde​.

🔗 References