== 1-prep README

This 1st
https://github.com/iiab/iiab/wiki/IIAB-Contributors-Guide#ansible[stage]
(1-prep) arranges low-level things like remote support infra, DNS prep,
hardware, low-level OS quirks, and basic security:

* SSHD
* OpenVPN if/as needed later for remote support
* https://github.com/iiab/iiab/tree/master/roles/iiab-admin#iiab-admin-readme[iiab-admin]
username and group, to log into Admin Console
* dnsmasq (install now, configure later!)
* Universally unique identifier: /etc/iiab/uuid
* Ubermix (distro) needs /etc/tmpfiles.d/iiab.conf to create essential
/var/log subdirs on each boot
* *_Hardware actions:_*
  ** link:tasks/install-expand-rootfs.yml[*_install-expand-rootfs.yml_*]:
    *** Install https://en.wikipedia.org/wiki/APT_(software)[apt] packages parted (reveals last partition) and cloud-guest-utils (for growpart)
    *** Install link:templates/iiab-expand-rootfs[/usr/sbin/iiab-expand-rootfs] that acts on flag flag `/.expand-rootfs`
    *** Enable iiab-expand-rootfs.service so this can happen during any future boot-up
  ** link:tasks/raspberry_pi.yml[*_raspberry_pi.yml_*]:
    *** RTC (real-time clock): install udev rule, configure, enable
    *** Install apt packages fake-hwclock (as above RTC is often missing or dead!) and dphys-swapfile (for swap file below)
    *** Increase swap file size (to `pi_swap_file_size`)
  ** NUC 6 Wi-Fi firmware
  ** Check for WiFi devices (if so, set `has_wifi_device`)

Recap: Similar to 0-init, 2-common, 3-base-server, 4 server-options and
5-xo-services — this 1st stage installs core server infra (that is not
user-facing).
