Understanding how Foreman operates on a low level, related to Raspberry Pi rollouts

> For my groups next project we are interested in using Foreman to configure
> and control multiple Raspberry Pi's over a large LAN.

Always nice to see a fellow RPI enthusiast – I'm big time into them
at this point.

> 1) My understanding is that Foreman will work as some kind of OS boot strap
> (like an OS install CD) and then kick off a known installer tool. If this
> is the case, then that means Foreman has been compiled for certain
> architectures and with certain drivers. Is this the case, and is there any
> detailed information I can find on this?

One thing I'm starting to appreciate about Foreman is that it is actually
an awesome orchestrator for existing services, rather than a replacement
for them. It basically takes the usual suspects (DNS servers, DHCP servers,
TFTP, puppet) and orchestrates everything in such a way that you can
control all aspects of boostrapping the baremetal boxes into the servers
doing useful stuff in your datacenter.

You don't have to use all the pieces at once – for example using Foreman
as just a Puppet ENC is a completely legit use case.

Now, getting back to RPI – the Foreman can help you with PXEbooting
orchestration as long as you can make the RPI itself do PXE. The default
bootloader is incapable of that. The only option I was able to find is this
work in progress: http://kernelnomicon.org/?p=122

Once you have that in place you can use foreman to automate the backend
of the bare metal provisioning.

> 2) Can I put the exact same image on multiple machines (Raspberry Pi's) and
> have Foreman assign a name, sign certificates, etc, in an automated fashion?
> Dream scenario is that I write the same image onto 100 Rasperry Pi's and
> hook it up to a DHCP based network. Foreman then obtains an IP, downloads
> and configures an OS, assigns a unique name, registers with puppet, and
> listens for commands. Is this more or less how Foreman is used, or must I
> physically touch the node in the same fashion that I do currently with
> Puppet.

Yes. Foreman can help you automate that dream scenario. On the other hand,
given how tiny (by modern standard) flash'es happen to be on RPIs I've
been toying with an idea of a much simplified workflow – managing the raw
disk images of the flash and blasting it onto the flash as part of the
PXEbooting.

IOW, instead of installing an OS via the installer, etc. You'll simply
overwrite the
flash partition whenever you feel like it and you get to a pristine
state. This is
very similar to how disk snapshoting is done with VMs.

> These are my two questions for now, but they obviously lead into a large
> conversation which I would love to get started.
> I am also researching exactly what operating systems and bootstrapping tools
> are available for Raspberry Pi, and I'll happily post this to this list if
> anyone is interested.

Feel free to ping me (off-list, unless folks here are also interested).

Thanks,
Roman.

··· On Wed, Jan 9, 2013 at 2:54 PM, Lucas Vickers wrote: