4.7. A Detailed Walk Through the Process

  1. When the imageserver is started, the /etc/init.d/systemimager-server-flamethrowerd init script is run, which starts the Flamethrower daemon (flamethrowerd). flamethrowerd, in turn, starts up udp-sender processes according to /etc/systemimager/flamethrower.conf.

  2. A new image is pulled using getimage, and the information in flamethrower.conf is updated.

  3. Prior to starting each cast, flamethrowerd will check to see if flamethrower.conf has been updated. If it has, it will be re-read. This allows new images to be made available dynamically, without having to restart flamethrowerd.

  4. When an autoinstall client comes up, it checks to see if FLAMETHROWER_DIRECTORY_PORTBASE is set. This can be set via "option-143" in dhcpd.conf, or via the FLAMETHROWER_DIRECTORY_PORTBASE variable in a local.cfg file. The default value for FLAMETHROWER_DIRECTORY_PORTBASE is 9000.

    If FLAMETHROWER_DIRECTORY_PORTBASE is set, then the autoinstall client requests directory information from the flamethrower daemon running on port FLAMETHROWER_DIRECTORY_PORTBASE. The imageserver waits a few seconds for other clients to join the directory information multicast, then casts out the directory information. The directory information is a directory of files, one per module, each containing the multicast details needed to access that particular module.

  5. When the client receives the Flamethrower directory information, it will look up the multicast information for each of the following modules, then sequentially join the multicast for each:

    1. boel binaries (additional binaries that the autoinstall client needs to continue the install)

    2. The entire autoinstall scripts directory

  6. After receiving the scripts cast, it will find it's autoinstall script, and execute it. The autoinstall script will proceed with the install by sequentially joining the multicasts for the appropriate image, then for any and all override directories.

  7. When all casts are received, the client completes the install according to the autoinstall script by configuring the boot loader, and performing it's post install action.

  8. When the flamethrowerd daemon completes the cast session for a module, it checks for changes in the flamethrower.conf file, re-reads it if necessary, then listens for new clients asking to join the cast for that module. Casts of seperate modules can happen in parallel.