This post describes the manual steps I need to do to set up the linux machines properly

Machines

I have a server (I'm not that environmentally friendly, I know) with VmWare ESXi installed and I've created multiple VMs for the different machines:

  1. core - contains several basic items like the UniFi controller, piHole etc.
  2. home - contains home-automation software (home assistant, node-red)
  3. development - to deal with development-related items via jenkins
  4. db - a database machine, with currently MariaDB
  5. video - a playground machine for e.g. ZoneMinder

Process

I have used the following steps:

  1. Pre-define MAC addresses for each machine (or note the ones you have)
  2. Install the basic Linux distribution, without extra packages (e.g. no docker), but with SSH and ansible
  3. Set up a fixed address for each machine. You can configure it to use a fixed IP, or force a fixed IP from the DHCP server. I have an UniFi-controlled network, so I used the controller to set up the fixed IP addresses for each of the servers.
  4. Create the SSH keys on each machine (fi not there).
  5. Add the desktop public key so you can log in on the machine without password.
  6. optional: disable password login for the 'root' user

Notes

Careful what you install manually if you want to use e.g. ansible automation. I installed mysql and my scripts attempted to install mariadb, resulting in a conflict.

Size your images carefully. I created one of 8GB for development and it as not enough :)