I have a small lab (literally) of 3 RBP-3B units with SATA and SD drives attached running Ubuntu 16.04 LTS. I have installed software on them to create a Ceph cluster but its tricky and pretty fragile.
Ultimately I would like to administer this "Worlds Smallest Cloud Storage Cluster" concept with Juju and make it the storage backend for an Intel NUC vBlock I won from the OSIC contest at the Openstack summit. Unfortunately I cant find a way to PXE boot the Raspberry Pi 3B, and chip support for this feature is on the horizon but currently not present.
I want to use MaaS to bootstrap the OS and feed these little guys into Juju deployments since its so easy from there to manage everything, but I am having trouble finding a working solution. I know that Juju can add machines after the OS is installed but its not apparent how to do that either, and if I set Juju up to use existing machines I don't know if I can still point it to MaaS controlled systems as well to create a heterogenous mix of gear without breaking functionality.
Any thoughts?
While you may not be able to PXE boot via MAAS on the RPi3, juju supports manual provisioning including the bootstrap node -
https://juju.is/docs/olm/manual-setup#heading--add-machines-to-a-manual-cloud
With this you can allow juju to provision them into the environment via SSH.
EDIT: I was able to get to the rpi_3_config part, but the next command gave an error.
EDIT #2: I am now able to compile u-boot successfully from the official u-boot git repo
EDIT #3: So far it looks successful with it's booting. Can't test it right now, but I will try with MaaS later!
While you might not be able to PXE boot a Raspberry Pi 3 without an SD Card just yet, you can get part of the way there with u-boot loaded on the sdcard, set to PXE boot from the network.
Unfortunately, I have been in exactly your situation, trying to PXE boot raspberry pies for MaaS, however I got a little stuck when the pi came to actually boot. I was able to get as far as it getting an address via DHCP, however when it came to parsing the pxelinux file it hit some sort of error.
Just in case you can have more luck with your raspberry pies, and keeping in mind that I was doing this ages ago before the Pi 3 was released, I shall briefly outline the steps which I took to get to that stage, although I can't help you further.
git clone git://git.denx.de/u-boot.git && cd u-boot
git checkout rpi_dev
#DEFINE
statement has already been added since.INSTALL TOOLCHAIN
, for your version of pi. Remember to add the path entries, which are only needed for the next step, so anexport
will suffice.make CROSS_COMPILER=arm-linux-gnueabi- rpi_3_config
and then to actually build:make CROSS_COMPILER=arm-linux-gnueabi-
u-boot.bin
file in your current directory.wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-4.4.y/scripts/mkknlimg
./mkknlimg --dtok u-boot.bin kernel7.img
Best of luck, and if you do succeed, make sure to post your own answer stating exactly what you did, and accept it.
berryboot will let you do network booting but its not real PXE http://www.berryterminal.com/doku.php/berryboot