NetworkGradeLinux / mion

Main repository for the mion network operating system
Other
15 stars 0 forks source link

First boot provisioning of containers #4

Open toganlabs opened 4 years ago

toganlabs commented 4 years ago

I would like on first boot for us to be able to indicate the location of a mender server/usb stick and the container get provisioned from there. We also need to support both inband and out of band provisioning, so we need to discuss how out of band would work (I assume USB key here, but need some thoughts here

Mender/USB stick/http/tftp/etc ONIE shell Everything currently gets blown away. Controlled update with rollback. So limit on POC to mender/USB.

Alex to talk to DT about Remote Provisioning, John and Beth

johntoomey commented 4 years ago

Current state of things in oryx(cmd) - on first boot the system runs a "preconfigure" which checks for a config file in a known location, containing a list of sources and guests to install (can be combination of local or remote).

Suggest that the following could be done for POC:

  1. Existing preconfigure code used when including the guest in the image or grabbing guests from a remote host - this is the simplest and most basic setup.

  2. systemd-udev script to mount a USB key on boot - say with a known filesystem type/name? - check for the existence of an alternative preconfigure script and run it from there. this could be used to provision guests from the usb key but doesnt really give an easy option of upgrades. slightly complicated by the fact that some switches use an eUSB disk (basically a permanently attached USB flash storage device) as their main disk. also - note that not all switches have an external USB Type-A (according to Andy H most do, but not all)

  3. mender modules (partially implemented in oryx) - the mender service will check-in and grab an update module which can be used to transfer and install a guest but the guest must have been previously build and added to the mender server in order for it to work. Could (in theory) be used to transfer and install multiple guests at once.

we have 1. already, i think 2. is messy so we need to be sure we want to spend time on it and 3. is half finished so it will take a chunk of time to complete..

@toganlabs @kprosise thoughts?

kprosise commented 4 years ago

I agree with your assessment of 2 and 3. 1 needs to be tested and debugged, but should be ready soon.

johntoomey commented 4 years ago

Possible example of how to do USB automounting using Systemd/udev

https://serverfault.com/questions/766506/automount-usb-drives-with-systemd