- We deploy the ova (not using any cloud-init at all - it never gets powered on)
- We mark this machine directly as a template for reuse
Now in our playbooks we use this template to deploy new machines.
For every machine we generate the cloud-init configurations for guest-config and network-config dynamically and create a cloud-init.iso file.
The network-config file contains:
- static ip address
- netmask
- nameservers
(I think the network config could be done with the guest-customizations now - this apparently was different in the past, when no netplan config was generated by the open-vm-tools. so we might skip this now, if the customizations work)
This guest-config file contains:
- user accounts (that might differ between VMs)
- ssh-keys (that might also differ between VMs)
- Some special runcmds depending on the machine
This setup is VM specific, so we can not do it during the ova deployment but only for every machine itself.
I hope this clears up the situation a bit of how we currently use it.
If there is anything blatantly wrong about this workflow I am happy to hear it, we setup this workflow only about 8 months ago, so we are not sure if this is the way it should be used.
Exactly so our current workflow looks like this:
- We deploy the ova (not using any cloud-init at all - it never gets powered on)
- We mark this machine directly as a template for reuse
Now in our playbooks we use this template to deploy new machines.
For every machine we generate the cloud-init configurations for guest-config and network-config dynamically and create a cloud-init.iso file.
The network-config file contains:
- static ip address
- netmask
- nameservers
(I think the network config could be done with the guest-customiza tions now - this apparently was different in the past, when no netplan config was generated by the open-vm-tools. so we might skip this now, if the customizations work)
This guest-config file contains:
- user accounts (that might differ between VMs)
- ssh-keys (that might also differ between VMs)
- Some special runcmds depending on the machine
This setup is VM specific, so we can not do it during the ova deployment but only for every machine itself.
I hope this clears up the situation a bit of how we currently use it.
If there is anything blatantly wrong about this workflow I am happy to hear it, we setup this workflow only about 8 months ago, so we are not sure if this is the way it should be used.