Actually your use case is what I am working on the last few weeks. Just to give you some information what I’m doing
- Setup my own Tailscale VPN using Headscale
- This gives me the option to access all machine remotely.
- Setup my own Ansible Server using Semaphore UI
- This allows me to push changes to the clients.
- Setup my own Rustdesk Service for remote-screen access
- Setup “raspberry pi connect” as fallback solution
- Setup of “kuma uptime” for monitoring all clients
For the actual (initial) system setup I use:
- Bash Scripts for initial setup and installations (basiclly what is not done by Ansible)
- Separated into a “sudo” and “non sudo” script
- Ansible Playbook for 80% of software installation (Pi-Apps, Headscale-Config, some Helpers like Bash-Extentsions, uninstalling unneeded softwar, enable system services, …)
- Ansible Playbook for MagicMirror Installation
- Ansible Playbook for modules installation
- Ansible Playbook for some CRON Jobs
There a a couple of things/tasks left, which I need to do manually
- Preparing the
config.js
because every MagicMirror installation needs a different one
- Optimizing the scripts and ansible playbooks. It works for me, but some parameters would be great.
- Many things I do not remember here :D
The update process are something which I do not include in the automations. There are too many manual steps and checks to include. Apart from that I’ll try to avoid update as long as I can - never touch a running system ;)