Last built 2 years ago using go version go1.4.2 linux/amd64 and 57 seconds of time
Simon Kirkby email@example.com 20150304
Astralboot is a golang server that provides network services to boot virtual and metal machines from pxe boot. The following services are provided
It can pull its data files out of ipfs, which means that they are downloaded on request and then stored locally.
Local file serving also works with local file system folders ( see INSTRUCTIONS for details )
As this server has a naive dhcp server it can be dangerous to run in an office environment. Running this server can interfere with normal network services.
assumes a working golang environment.
go get github.com/zignig/astralboot
also the ipfs service, which is currently in alpha , is available from http://github.com/ipfs/go-ipfs
will need to be installed and running
Testing so far has been done on a virtual machine with two network interfaces, one on a home network and the other an isolated VM network.
This machine will probably need to have masquerading setup , this is not needed for astral boot , but is for the machines to access the internet.
echo 1 > /proc/sys/net/ipv4/ip_forward
make it stick
edit /etc/sysctl.conf and change net.ipv4.ip_forward = 1
change the firewall
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
The test machines to be bootstrapped have one network interface attached to isolated VM network.
Once you have the astral boot binary built, edit the config.toml file for interfaces on your virtual machines.
The default hashes for booting are included in the git repository , put them into place by running.
cp refs.toml.dist refs.toml
a minimal config is
interface = “eth1”
It is worth noting that this will need to be run as root , dhcp, tftp and http not running on the machine
Now you are good to go, run the astralboot binary
Now comes the fun bit ….
Create a virtual machine that is connected to the isolated network that astralboot is serving on and configure it to PXE boot.
The boot sequence should happen in this order
Debian will be fairly quick , coreos will take some time as the .gz file is 165 Mb , so it will take some time to download
To precache the files into ipfs, run ipfs refs -r HashFromConfigFile and it will download everything
As the server boots it will show an implied config , this shows possible entries to the config file to change.
Developing boot services, To develop modified boot services it is possible to serve the files from disk rather than ifps Downloading the files can be done with the following ipfs commands
In the astralboot folder :
ipfs get -o=data “hash from the refs.toml file”
then run astralboot with a -l ( l for larry ) flag an it will use the local file system.
all comments, patches and pull requests welcome