improve docs
[automated-distro-installer] / README
1 Multi-boot/distro btrfs provisioning
2
3 Some things are specific to my home network. Uses pxe or pxe-kexec (on
4 libreboot, I have not addded a pxe rom. I use a minimal debian stable
5 subvolume which acts like a pxe rom). I use this for bare metal and vms,
6 and two scripts which can run post boot so I use them on vps distributed
7 image as well.
8
9 Features people may find useful: installs encrypted trisquel belanos,
10 arch (havne't done recently, probably a bit broken), debian stable, &
11 debian testing which all share the same btrfs filesystem. Smartly
12 utilizes multiple disks, with scripts to automatically decrypt on
13 reboots. The partititioning and filesystem script is at
14 fai/config/hooks/partition.DEFAULT. Other debian based distros at least
15 as new as ubuntu 14.04 should work fine, and I'm planning to add Fedora
16 support. Disks are grouped as ssd or hdd and raided in raid 1 or raid 0
17 per configuration. The base partitions are divided into boot, swap, and
18 root, (only boot is unencrypted). There are scripts to resize those
19 partitions post-provision and while the system is running.
20
21 The repo name fai copied from the project of the same name because it
22 uses it for debian based installs. People who are familiar with fai may
23 find these things usefull: it uses dnsmasq (on a openwrt machine) for
24 dhcp instead of the isc dhcp server. fai-wrapper is a small script to
25 use basic fai classes outside of fai.
26
27 It also fully automates configuration of an openwrt router after manual
28 initial installation.
29
30 After provisionining is done, I sync files using btrfs, or unison for
31 vps, then automate further setup using a different set of scripts,
32 https://iankelling.org/git/?p=distro-setup;a=tree.
33
34 My network is a wndr3700v2 router with openwrt on it and a few pcs/laptops.
35
36 Since fai requires a debian server as the fai server, there are also
37 scripts to automate a debian install using pxe and preseeding, which can
38 be done from any distro.
39
40 Some of the scripts have dependencies for some simple obvious utility
41 scripts from https://iankelling.org/git, and of course there are some
42 hostnames that are specific to my network.
43
44 Main scripts meant to be called interactively:
45
46 arch-init-remote # install arch (after it's been booted into it's setup env)
47 chboot # Set grub to boot into a different distro (installed earlier)
48 install-chboot # reinstall chboot to /boot subvols, for when it changes
49 dsfull # install & setup a new fai distro (if data partition already synced)
50 eboot # reboot without automatic disk decryption
51 fai-kexec # kexec to fai tftp server that pxe would normally point to
52 fai-revm # test fai on a fresh vm
53 fai-wrapper # Evaluate and use fai classes outside of fai.
54 faiserver-revm # create a vm which is a fai server using pxe & preseed file
55 faiserver-uninstall # uninstall fai-server
56 faiserver-setup # install fai-server on the current machine
57 fresize # resize swap or boot partitions in a host
58 myfai-chboot # Sets up tftp pxe config on fai server
59 pxe-server # temporarily enable (usually) fai or arch boot server
60 wrt-setup-remote # setup my router
61 ubuntu-xenial-live-fai-kexec # do fai install from xenial live cd using kexec
62 myfai-chboot # use instead of pxe-server for fai kexec based install
63
64 License stuff:
65 The license for the project is GPLv2 or later, mostly because fai is
66 and I periodically rebase off their example setup for debian. Also,
67 there is a modified encrypt.upstream, which is from the cryptsetup
68 package in arch, which is under the same license.