Finishing the Odroid C2 PicoCluster
This weekend I was making good progress on my PicoCluster project. Initially I had thought that I could assemble everything first, replacing the OS with a
cloud-init enabled version later on. But as it turns out, this is pretty much impossible when using eMMC instead of µSD as storage device - there is just not enough room to detach and reattach the eMMCs. So I needed to have the proper image on the eMMCs right from the start.
HypriotOS & cloud-init
Stefan Scherer had already implemented
cloud-init support for HypriotOS in his GitHub fork of image-builder-rpi, and I had already integrated most of his changes - everthing except for documentation - into my working fork of the image-builder-odroid-c2 a while ago. Rebasing those changes onto master and running a local build of the image-builder was straightforward, and I could start flashing the eMMCs within 30 minutes.
My cloud-init Configuration
The configuration I’ve initially used for the five Odroids is available at GitHub, and I will update the repository as the project advances. In order to run, the included
flash script requires a clone of the HypriotOS flash utility in the repository next to it. The script itself is a simplification for passing in the correct arguments for each of the Odroids.
Example: to load my locally build image for the first instance, the script has to be run as follows:
# flash ./flash dockeroid01 ../image-builder-odroid-c2/hypriotos-odroid-c2-dirty.img.zip
Since I didn’t want to risk having to disassemble everything again, I was flashing the image board by board, verifying after each step that I could boot & connect to the system. Once done with all the flashing, I assembled all the other pieces of the PicoCluster, though I had to deviate from the instructions at some point. The finished result looks like this:
Now that the cluster is assembled, there is more to do: set up Puppet, Swarm Mode, Treafik, and migrating my existing docker containers over to the new cluster. But that’s something for another post.