X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=README;h=d579feb4c001a6deefaddc9b40b5f8f80edada92;hb=47b51938ae090a2717cb2ec3f9e547a76e7b2ae7;hp=c5cf1beb7c86d5ef0db16ed210cb48bb6b896b11;hpb=ce6db3967cb73d7169cc8b410e53e2ecbd506752;p=automated-distro-installer diff --git a/README b/README index c5cf1be..d579feb 100644 --- a/README +++ b/README @@ -1,18 +1,84 @@ -Scripts for initial setup of OSes on my home network. +Multi-boot/distro btrfs provisioning -My network is a wndr3700v2 router with openwrt on it and a few pcs -with various gnu/linux distros on them. +Some things are specific to my home network, and uses files with secrets +that are not in this repo. Uses pxe or pxe-kexec (on libreboot, I have +not added 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. +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. -Scripts meant to be called interactively: +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 +scripts to automate a debian install using pxe and preseeding, which can +be done from any distro. + +Some of the scripts have dependencies for some simple obvious utility +scripts from https://iankelling.org/git, and of course there are some +hostnames that are specific to my network. + +All scripts meant to be used directly are listed here: + + +# Scripts to setup the environment for the install + +fai-redep # Deploy fai configuration to host "faiserver" +faiserver-revm # using pxe & preseed, create a vm which is a fai server +faiserver-uninstall # uninstall fai-server +faiserver-setup # install fai-server on the current machine +myfai-chboot # setup fai server for kexec, for use instead of "pxe-server" +pxe-server # disable/enable fai or arch pxe boot server +wrt-setup-remote # setup my router in general: dhcp, dns, etc. + + +# Scripts to do a distro install arch-init-remote # install arch (after it's been booted into it's setup env) +dsfull # install & post-install a new fai distro +fai-kexec # kexec to fai tftp server that pxe would normally point to +arch-revm # test arch install on a fresh vm +fai-revm # test fai install on a fresh vm +live-kexec # fai kexec from upstream live cds, e.g. curl live-kexec|bash + + +# Scripts to call after a distro install for various reasons + chboot # Set grub to boot into a different distro (installed earlier) -dsfull # install & setup a new fai distro (if data partition already synced) -fai-revm # test fai on a fresh vm -faiserver-revm # create a vm which is a fai server -faiserver-uninstall +install-chboot # reinstall chboot to /boot subvols, for chboot updates. +eboot # reboot without automatic disk decryption +fai-wrapper # Evaluate and use fai classes outside of fai. fresize # resize swap or boot partitions in a host -pxe-server # temporarily enable (usually) fai or arch boot server -wrt-setup-remote # setup my router + + +License stuff: +The license for the project is GPLv2 or later, mostly because fai is +and I periodically rebase off their example setup for debian. Also, +there is a modified encrypt.upstream, which is from the cryptsetup +package in arch, which is under the same license.