X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=README;h=10d52fed129df56318d0a98600007528941ad1a1;hb=2f13039525488532756a089b8329ab6ee64a6c17;hp=f7e6ef1a3727ff56c13b7e101d398282d1741159;hpb=1a5548031efc4a1fa88ca94237eac3033cf97ef1;p=automated-distro-installer diff --git a/README b/README index f7e6ef1..10d52fe 100644 --- a/README +++ b/README @@ -1,16 +1,39 @@ -Scripts for provisioning OSes on my home network. +Multi-boot/distro btrfs provisioning -Features people may find useful: installs encrypted arch, debian stable, -& debian testing all on the same btrfs filesystem, smartly utilizing -multiple disks, with scripts to automatically decrypt on reboots. Disks -are grouped as ssd or hdd and raided in raid 1 or raid 0 per -configuration. The os raid is partitioned into boot, swap, and root, -(only boot is unencrypted) and there are scripts to resize those -partitions post-install if needed. +Some things are specific to my home network. Uses pxe or pxe-kexec (on +libreboot, I have not addded a pxe rom. I use a minimal debian stable +subvolume which acts like a pxe rom). I use this for bare metal and vms, +and two scripts which can run post boot so I use them on vps distributed +image as well. -It also fully automates configuration of an openwrt router after manual +Features people may find useful: installs encrypted trisquel belanos, , +debian jessie, debian stretch, ubuntu 16.04, and arch (havne't done +recently, probably a bit broken), in a multi-boot setup using multiple +subvolumes of a single btrfs filesystem. Utilizes multiple disks, with +scripts to automatically decrypt on intentional reboots, but not after +shutdown or power loss. + +The partititioning and filesystem script is at +fai/config/hooks/partition.DEFAULT. Other debian based distros at least +as new as ubuntu 14.04 should work fine, and I'm planning to add Fedora +support. Disks are grouped as ssd or hdd and raided in raid 1 or raid 0 +per configuration. The base partitions are divided into boot, swap, and +root, (only boot is unencrypted). There are scripts to resize those +partitions post-provision and while the system is running. + +People who use fai may find these things as useful examples: it uses +dnsmasq (on a openwrt machine) for dhcp instead of the isc +dhcp. fai-wrapper is a small script to use basic fai classes outside of +fai. It does not use the fai partitioning tool, but the script is +inspired from it and works outside of fai. + +It also automates configuration of an openwrt router after manual initial installation. +After provisionining is done, I sync files using btrfs, or unison for +vps, then automate further setup using a different set of scripts, +https://iankelling.org/git/?p=distro-setup;a=tree. + My network is a wndr3700v2 router with openwrt on it and a few pcs/laptops. Since fai requires a debian server as the fai server, there are also @@ -25,13 +48,21 @@ Main scripts meant to be called interactively: arch-init-remote # install arch (after it's been booted into it's setup env) chboot # Set grub to boot into a different distro (installed earlier) +install-chboot # reinstall chboot to /boot subvols, for when it changes dsfull # install & setup a new fai distro (if data partition already synced) +eboot # reboot without automatic disk decryption +fai-kexec # kexec to fai tftp server that pxe would normally point to fai-revm # test fai on a fresh vm -faiserver-revm # create a vm which is a fai server -faiserver-uninstall +fai-wrapper # Evaluate and use fai classes outside of fai. +faiserver-revm # create a vm which is a fai server using pxe & preseed file +faiserver-uninstall # uninstall fai-server +faiserver-setup # install fai-server on the current machine fresize # resize swap or boot partitions in a host +myfai-chboot # Sets up tftp pxe config on fai server pxe-server # temporarily enable (usually) fai or arch boot server wrt-setup-remote # setup my router +ubuntu-xenial-live-fai-kexec # do fai install from xenial live cd using kexec +myfai-chboot # use instead of pxe-server for fai kexec based install License stuff: The license for the project is GPLv2 or later, mostly because fai is