Hi @Biggen, Hi @olivierlambert ,
I am also in the process of evaluating a terraform+ansible based tool-stack.
- XCP-ng + XO + cloud-init + terraform + ansible
vs. - ESXi + vServer + cloud-init + terraform + ansible
After a lot of pain and constant cursing of the cloud-init documentation I am finally at a point where I can deploy a ubuntu-1804 machine from a template and have it come up with the network settings what I want it to have. (i.e. a static config that, in a later step, will be created from data out of an IPAM / inventory system)
This is step one if I want to be able to control the deployment of new machines and not have them shop around for the first dhcp response they get...
However this seems to only work if I use the NoCloud data source.
Currently I am somewhat stuck.
I can't seem to get terraform to provide network-configuration settings to the VM.
Apparently cloud-init was designed with just the public cloud in mind. Thus they seem to try to keep those pesky users away from the precious network configuration.
On the other hand, What would be the best way to implement a terraform-driven infrastructure, if I can't configure the host's IP settings directly via cloud-init? Which data source would you suggest for a private cloud?
I'd much rather implement it all based on XCP-ng+XO but ESXi+vSphere seems to have a headstart where it comes to integration with both terraform and cloud-init.
What I am currently missing in XCP-ng/XO is a vision for the private cloud in times of infrastructure as code and DevOps. A world where Devs do have more power (though not necessarily more skills) to spin up virtual environments just to run their test suite.
I'd also love to see some kind of "This is how we imagine things to scale..." Like the very readable Cloud Architecture documentation of OpenNebula.