I wrote my first Mojolicious web app yesterday, a cloud-init meta-data server to enable running pre-built VM images (e.g. as provided by debian, ubuntu, etc) without having to install and manage a complete, full-featured cloud environment like openstack.
I hacked up something similar several years ago when I was regularly building VM images at home for openstack at work, with just plain-text files served by apache, but that had pretty-much everything hard-coded.
fakecloud does a lot more and allows per-VM customisation of user-data (using the IP address of the requesting host). Not bad for a day’s hacking with a new web framework.
I suppose that you already knew it, but for cloud-init, there is also the possibility to use the nocloud provider which relies on a provided ISO image with the appropriate metadata on it.
Yep, I knew about nocloud. Making ISO images for each VM seemed like too much of a chore.
Now that I’ve written
fakecloud, it Just Works for all cloud-init VMs I run, and if I want to customise the user-data for a VM, I only have to create/edit some text files.
I also needed a useful project to learn Mojolicious with.