Hi Niko,
I am quite new to this so my take on it will be simplistic, but I just use a script to provision nodes that has all information as variables. For example, below are wwsh commands I run to setup an RStudio server with reverse https proxy to enable encrypted session.
NODE=host.local # local hostname
GE_IPADDR=172.21.13.20 # Gigabit, eth0, for SSH access
XE_IPADDR=192.168.13.20 # 10 Gigabit, eth3, for connecting to NFS server
GE_HWADDR=xx:xx:xx:xx:xx:xx
XE_HWADDR=xx:xx:xx:xx:xx:xx
EXTERNAL_HOST=ext_host # hostname visible to internet
wwsh -y node new ${NODE} --netdev=eth0 --hwaddr=${GE_HWADDR} --ipaddr=${GE_IPADDR} --groups=HYDRARS --domain=local.lan --netmask 255.255.255.0
wwsh -y provision set --lookup groups HYDRARS --vnfs=hydrars-centos-7 --bootstrap=3.10.0-229.14.1.el7.x86_64
wwsh -y object modify ${NODE} -s NGINXURL=${EXTERNAL_HOST}.
example.comwwsh -y provision set --fileadd=nginx.default.conf.ww ${NODE}
wwsh -y provision set --fileadd=private.key.ww ${NODE}
wwsh -y provision set --fileadd=domain.intermediate.crt.ww ${NODE}
wwsh -y provision set --fileadd passwd,group,shadow ${NODE}
wwsh -y node set ${NODE} --netdev=eth3 --ipaddr=${XE_IPADDR} --netmask=255.255.255.0 --hwaddr=${XE_HWADDR}
wwsh -y provision set --fileadd=ifcfg-eth3.ww ${NODE}
wwsh -y provision set --fileadd=resolv.conf.ww ${NODE}
wwsh -y provision set --fileadd=network.ww ${NODE}
wwsh -y file sync \* ${NODE}
systemctl restart dhcpd