Files
linuxkit/boot2docker/doc/AUTOMATED_SCRIPT.md
2015-11-27 11:46:27 +00:00

1.8 KiB

Automated script

Overview

The document describes the "automated script" functionality and some use cases. I assume you have basic knowledge of iPxe/pxe booting. Please see the following link for more documentaion regarding iPxe: http://ipxe.org/

Summary

Automated script allows you to run an arbitrary script as a boot parameter. The script parses /proc/cmdline for script variable and download the script if its either an ftp or http uri. This method is used by Archlinux to install unattendedly. Please see the following link for reference:

https://projects.archlinux.org/archiso.git/tree/configs/releng/airootfs/root/.automated_script.sh

Usecase

Lets say you want to run boot2docker on multiple physical machines and you want run hashicorp/consul on all machines. You boot the machine via ipxe and add script as a parameter. The script you use could take information from the host as an identifier and announce itself using that information.

Extracting initrd and vmlinuz64

You mount the iso and the files are located in /boot.

Extracting boot parameters

Extracting the parameters and adjusting these will help you boot and provision using iPxe. It will also help you understand how boot2docker is being run currently.

root@896569876a97:/# cat /proc/cmdline
loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10:LABEL=boot2docker-data base initrd=/boot/initrd.img BOOT_IMAGE=/boot/vmlinuz64

iPxe example

#!ipxe

set script http://192.168.3.3:4321/repo/script.sh
set append loglevel=3 user=docker console=ttyS0 console=tty nomodeset norestore base script=${script}
set kernel http://192.168.3.3:4321/repo/vmlinuz64
set initrd http://192.168.3.3:4321/repo/initrd.img



imgfree
kernel ${kernel} ${append}
initrd ${initrd}
boot