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