Matt Birkholz [Sun, 23 Nov 2025 19:13:12 +0000 (12:13 -0700)]
Punt loading many variables when only running accounts tasks.
The All role has no such tasks. The Front role just needs ~usernames~
and ~members~. The Core role just needs these as well, except that
generating/checking fetchmail configs requires ~front_wg_addr~ and
~domain_name~. The Gate role just updates/checks Gate's WireGuard™
config file, and the Campus role has /no/ accounts tasks: 1 tagged
task, 0 variables used.
Matt Birkholz [Sat, 22 Nov 2025 20:21:33 +0000 (13:21 -0700)]
Tangle common variables into role defaults files.
Site specific settings go in =vars.yml= files in =../public/= or
=../private/=, but common variables should be role defaults, found in
=defaults/main.yml= files relative to their roles, not the site-
specific playbook.
Unfortunately this means creating 4 new, nearly identical files.
Luckily they are tangled from a single source, courtesy of noweb.
Matt Birkholz [Fri, 21 Nov 2025 00:04:39 +0000 (17:04 -0700)]
Re-generate WireGuard™ configs in ./inst old as well as client.
Added a write_wireguard subroutine to be called by the old as well as
client subcommands. Re-compute the list of clients again from the
YAML that was saved to disk, but ignoring the clients of former
members.
Matt Birkholz [Thu, 20 Nov 2025 22:39:00 +0000 (15:39 -0700)]
Modify the VBox DHCP server and statically configure front_addr.
Rather than let the test Front machine use DHCP to get some simulated
cloud-assigned IP address, statically configure it to the front_addr
(outside the DHCP server's pool).
Matt Birkholz [Sun, 2 Nov 2025 22:04:55 +0000 (15:04 -0700)]
Fixes for Testing as far as Nextcloud 31 installation.
- Ensure ~front~ gets ~front_addr~ by moving it to 192.168.15.3,
hopefully outside the default DHCP pool.
- Expect ~front~ hostname to be FQDN.
- Don't warn about missing =~/Public/HTML= targets on ~front~.
- Include an alias for ~root~. This was previously provided by the
Postfix install.
- Un-truncate the Nextcloud DB password (to match Testing).
- Update Nextcloud installation instructions for version 31, including
esp. the ~occ maintenance:install~ command and the link to the
official "Installation from command line" instructions.
- Fix confused syntax in =templates/wild.network=.
- Add forward rules to ~ufw-before-forward~. ~ufw-user-forward~ is
reserved for rules generated per user requests.
- Use the Ansible ~ufw~ module to enable the firewall (without
hanging).
- Fix initialization of ~members~ so that the first member is
added to an empty hash and not undef.
- Quiet the ~./inst new~ command.
- Removed extra whitespace from many arguments to ~mysystem~ (sorry!).
- Changed name of simulated Internet from ~premises~ (as in the
introductory diagram) to ~public~ (as in ISP and cloud).
- Statically assign IP addresses to both NICs on ~front~.
- Note need to restart ~gate~ after its first configuration.
Matt Birkholz [Mon, 27 Oct 2025 17:06:19 +0000 (10:06 -0700)]
Document-smithing: minor edits for consistency or completeness.
- Fix ~:tangle-mode~ of private files to include ~g=,o=~.
- Get ~:mkdirp yes~ and ~:noweb no-export~ where needed, and not where
they are not needed.
- Tangle and link to =webupdate= and =gate-wg0.conf=.
- Punt nonsense entries in =core-dhcpd.conf=.
- Punt capitalization of example submodule directory =Institute/=.
- Wordsmithing.
Matt Birkholz [Thu, 18 Sep 2025 20:40:24 +0000 (14:40 -0600)]
Make Monkey's a user (not system) account.
For restore purposes it is nice to have a handy list of owners of
files in =/home/=, so we try to keep =/home/= wholly user owned.
Monkey owns significant portions of =/home/=, =/Shared/=, =/WWW/=,
etc.
Matt Birkholz [Thu, 18 Sep 2025 19:49:42 +0000 (13:49 -0600)]
Configure a new Core without starting services.
Tasks that actually start services are tagged with ~actualizer~. Thus
~ansible-playbook~ can be given the ~--skip-tags actualizer~ command
line option to configure a new Core without actually setting the
static IP address, domain name, etc. nor starting any services.
The intention is to work through any problems configuring core
services on new hardware running, probably, a new OS version /without/
disturbing actual Core services.
This required splitting many Enable/Start tasks in two: the latter
tagged as the "actualizer".
Matt Birkholz [Sat, 28 Jun 2025 16:45:31 +0000 (10:45 -0600)]
Include wild_net_cidr in client configs for the public VPN only.
Using the tunnel to get to the server would be a mistake.
Also fixed the examples to follow suit, or just to get the IoT
appliance's PrivateKey field "correct", looking like the WireGuard™
for Android GUI dialog.
Matt Birkholz [Sat, 14 Jun 2025 23:34:14 +0000 (17:34 -0600)]
Remove OpenVPN. Add pubkeys to the institute "client" command args.
Replaced "revoked" with "clients" in private/members.yml.
Use a PostUp command to install peer private keys from the local
/etc/wireguard/private-key file, thus keeping it out of the WireGuard™
and Ansible configurations. Moved e.g Secret/gate-wg0.conf to
private/. Provide the example private keys in a table (as they appear
nowhere else!). Treat gate-wg0.conf and front-wg0.conf like
members.yml: do not tangle them and thus wipe out a test state(?).
Matt Birkholz [Tue, 30 Apr 2024 18:46:28 +0000 (12:46 -0600)]
Don't fiddle extra host keys added later by monkey@core's ssh.
And remove group read access to =~monkey/.ssh/known_hosts= on Core,
else the client will remove it later (producing a spurious diff, and a
re-config loop).