CloudInit and Instance Data, or replacing the current context scripts
|Assignee:||Javi Fontan||% Done:|
|Target version:||Release 4.4|
Have you heard of CloudInit? It allow for bootstrapping instance configuration (setting the hostname, configuring various services, etc.). It seems to be becoming the standard for doing instance configuration on other cloud platforms, at least on Amazon EC2, and Openstack has support for it too.
I think we should look at adding support for CloudInit, and ultimately replacing the OpenNebula context packages / scripts.
#1 Updated by Javi Fontan over 7 years ago
We also think that cloud-init support is a must so VMs don't need to be reengineered for different VMMs. There are already two efforts in that direction:
- Ricardo Duarte was working in a metadata server like EC2, compatible with cloud-init. http://lists.opennebula.org/pipermail/users-opennebula.org/2013-January/021773.html
- Vlastimil Holer is working on cloud-init extensions that understand OpenNebula contextualization, hopefully these changes will be added to upstream. https://code.launchpad.net/~vlastimil-holer/cloud-init/opennebula
#5 Updated by Ricardo Duarte about 7 years ago
If you want to support regular images, it would be valuable to handle image resize, because most of the images (most notably ubuntu cloud images) are small and assume they will be resized by the cloud software. Cloud-init deals with the resize of the filesystems inside the guests. OpenNebula just has to resize the qcow/raw virtual disk.
Maybe by including #1727 this could be easily implemented.
Also, latest Ubuntu cloud-init requires a serial port to be present. And cloud-init is know to put some important output to the console (keys, passwords, etc).
This could also be a good driver to implement #1710 .
#7 Updated by Ruben S. Montero over 6 years ago
- Status changed from New to Closed
- Assignee set to Javi Fontan
- Resolution set to fixed
Code has been merged with cloudinit. It currently supports user_data, ssh keys. There is a bug to be solved in feature versions when configuring the network. We will follow this using the cloud-init project tracker.