From: Matt Birkholz
+| = _|||_ @@ -108,11 +108,7 @@ philosophy, attitude.The abbey's public particulars are included below. They are the -public particulars of a small institute, nothing more. As for the -abbey's private parameters, in
private/vars-abbey.yml, example lines -(only! ;-) are included in the following chapters. An example of the -abbey's private institutional parameters,private/vars.yml, can be -found inInstitute/private/vars.yml. +public particulars of a small institute, nothing more.@@ -124,6 +120,18 @@ full_name: Birchwood Abbey front_addr: 159.65.75.60+ ++The abbey's private institutional parameters are in +
+ +private/vars.yml. Example lines can be found in +Institute/private/vars.yml. ++The abbey's private liturgical parameters are in +
private/vars-abbey.yml. Example lines are included here and tangled +intoprivate_ex/vars-abbey.yml. +@@ -136,8 +144,8 @@ with Apache2, spooling email with Postfix and serving it with Dovecot-IMAPd, and hosting a VPN with OpenVPN.--3.1. Install Emacs
++-3.1. Install Emacs
-The monks of the abbey are masters of the staff (bo) and Emacs. @@ -549,7 +557,7 @@ rest of the Let's Encrypt configuration is discussed in the following <<apache-gitweb>> IncludeOptional /etc/letsencrypt/options-ssl-apache.conf - dest: /etc/apache2/sites-available/{{ domain_name }}-vhost.conf + dest: /etc/apache2/sites-available/birchwood-abbey.net-vhost.conf notify: Restart Apache2. <<apache-gitweb-tasks>> @@ -703,7 +711,7 @@ certificate is a terminal session affair (with prompts and lines entered as shown below).
-+$ sudo apt install python3-certbot-apache $ sudo certbot --apache -d birchwood-abbey.net ... @@ -922,8 +930,8 @@ with Postfix and Dovecot, and providing essential localnet services: NTP, DNS and DHCP.--4.1. Include Abbey Variables
++4.1. Include Abbey Variables
In this abbey specific document, most abbey particulars are not @@ -1121,8 +1129,8 @@ The abbey uses the Apt-Cacher:TNG package cache on Core. The
-4.8. Use Cloister Apt Cache
++4.8. Use Cloister Apt Cache
@@ -1341,60 +1350,60 @@ rarely powered up. template: src: nagios-{{ item }}.cfg dest: /etc/nagios4/conf.d/{{ item }}.cfg - loop: [ devaron, kessel ] + loop: [ ord-mantell, kessel ] notify: Reload NAGIOS4.Core itself will benefit from using the package cache. @@ -1135,7 +1143,7 @@ Core itself will benefit from using the package cache. copy: content: > Acquire::http::Proxy - "http://apt-cacher.{{ domain_priv }}.:3142"; + "http://apt-cacher.birchwood.private.:3142"; dest: /etc/apt/apt.conf.d/01proxy mode: u=rw,g=r,o=r @@ -1294,8 +1302,8 @@ recognizable temperature in the
sensors
output.4.12. Monitoring The Cloister
@@ -1318,9 +1326,10 @@ included in-The abbey adds monitoring for more servers: Kamino, Kessel and -Devaron. They are
@@ -1304,7 +1312,7 @@ Remote Plugin Executor) server and anabbey-cloister
servers, so they are configured as +The abbey adds monitoring for more servers: Kamino, Kessel, and Ord +Mantell. They areabbey-cloister
servers, so they are configured as small institutecampus
servers, like Gate, with an NRPE (a NAGIOS Remote Plugin Executor) server and aninst_sensors
command.inst_sensors
command. The configurations for the servers are very similar to Gate's, but are idiosyncratically in flux. In particular, Kamino does not irritatecheck_total_procs
, yet Kessel does. Both are Pop!_OS 22.04, but -Kessel is a wireless host while Kamino is wired. Devaron, the +Kessel is a wireless host while Kamino is wired. Ord Mantell, the Raspberry Pi OS (ARM64) machine, uses theabbey_pisensors
monitor.private/vars-abbey.yml.-private/vars-abbey.ymldevaron_addr: 10.84.138.10 +private_ex/vars-abbey.yml--- kamino_addr: 192.168.56.14 kessel_addr: 10.84.138.8 +ord_mantell_addr: 10.84.138.10-4.12.3. NAGIOS Monitoring of Devaron
++-4.12.3. NAGIOS Monitoring of Ord-Mantell
-roles_t/abbey-core/templates/nagios-devaron.cfgdefine host { +roles_t/abbey-core/templates/nagios-ord-mantell.cfgdefine host { use linux-server - host_name devaron - address {{ devaron_addr }} + host_name ord-mantell + address {{ ord_mantell_addr }} } define service { use generic-service - host_name devaron + host_name ord-mantell service_description Root Partition check_command check_nrpe!inst_root } # define service { # use generic-service -# host_name devaron +# host_name ord-mantell # service_description Current Load # check_command check_nrpe!check_load # } define service { use generic-service - host_name devaron + host_name ord-mantell service_description Zombie Processes check_command check_nrpe!check_zombie_procs } # define service { # use generic-service -# host_name devaron +# host_name ord-mantell # service_description Total Processes # check_command check_nrpe!check_total_procs # } define service { use generic-service - host_name devaron + host_name ord-mantell service_description Swap Usage check_command check_nrpe!inst_swap } define service { use generic-service - host_name devaron + host_name ord-mantell service_description Temperature Sensors check_command check_nrpe!abbey_pisensors } @@ -1513,10 +1522,99 @@ rarely powered up.-4.13. Install Analog
+++4.13. Install Munin
++The abbey is experimenting with Munin. NAGIOS is all about notifying +the Sys. Admin. of failed services. Munin is more about tracking +trends in resource usage. +
+ +++ +roles_t/abbey-core/tasks/main.yml+- name: Install Munin. + become: yes + apt: + pkg: munin + +- name: Add {{ ansible_user }} to Munin group. + become: yes + user: + name: "{{ ansible_user }}" + append: yes + groups: munin + +- name: Enable network access to Munin. + become: yes + lineinfile: + path: /etc/munin/apache24.conf + regexp: '([^#]*)Require' + line: '\1Require all granted' + backrefs: yes + notify: Restart Apache2. + +- name: Punt default Munin node. + become: yes + replace: + path: /etc/munin/munin.conf + regexp: '^\[localhost.*\n\n' + +- name: Configure actual Munin nodes. + become: yes + copy: + content: | + [dantooine.birchwood.private] + address 127.0.0.1 + + [anoat.birchwood.private] + address {{ gate_addr }} + + [kessel.birchwood.private] + address {{ kessel_addr }} + + [ord-mantell.birchwood.private] + address {{ ord_mantell_addr }} + dest: /etc/munin/munin-conf.d/zzz-site.cfg + notify: Restart Munin. +++The core machine's sensors produce some unfortunate measurements. The +next task configures
+ +libsensors
to ignore them. +++ +roles_t/abbey-core/tasks/main.yml+- name: Configure core sensors(1). + become: yes + copy: + content: | + chip "iwlwifi_1-virtual-0" + ignore temp1 + + chip "acpitz-acpi-0" + ignore temp1 + dest: /etc/sensors.d/site.conf ++++roles_t/abbey-core/handlers/main.yml+- name: Restart Munin. + become: yes + systemd: + service: munin + state: restarted +++4.14. Install Analog
++The abbey's public web site's access and error logs are emailed regularly to
webmaster
, who saves them in/Logs/apache2-public/and runsanalog
to generate/WWW/campus/analog.html, available to @@ -1569,8 +1667,8 @@ the campus ashttp://www/analog.html
.-4.14. Add Monkey to Web Server Group
-+4.15. Add Monkey to Web Server Group
+Monkey needs to be in
www-data
so that it can run/WWW/live/Photos/Private/cronjobto publish photos from multiple @@ -1592,8 +1690,8 @@ user cloud accounts, found in files owned bywww-data
, files like-4.15. Install netpbm For Photo Processing
-+4.16. Install netpbm For Photo Processing
+Monkey's photo processing scripts use
netpbm
commands likejpegtopnm
. @@ -1609,8 +1707,8 @@ Monkey's photo processing scripts usenetpbm
commands like-4.16. Configure Weather Updates
-+4.17. Configure Weather Updates
+-Monkey on Core runs
/WWW/campus/Weather/Private/cronjobevery 5 minutes andcronjob-midnightat midnight. @@ -1766,21 +1864,25 @@ Birchwood Abbey's cloister is a small institute campus. Thecampus
role configures all campus machines to trust the institute's CA, sync with the campus time server, and forward email to Core. Theabbey-cloister
role additionally configures cloistered machines to -use the cloister Apt cache, respond to Core's NAGIOS network monitor, -and to install Emacs. There are also a few OS specific tasks, namely -configuration required on Raspberry Pi OS machines. +use the cloister Apt cache, respond to Core's NAGIOS and Munin network +monitors, and to install Emacs. There are also a few OS specific +tasks, namely configuration required on Raspberry Pi OS machines.Wireless clients are issued keys for the cloister VPN by the
+ +./abbey -client
command. This command includes the institutional process -described in The Client Command. The process handles three types of -clients: Android, Debian and Campus. The last type never roams, and -is not associated with a member of the small institute. +client command which is currently identical to the./inst client
+command (described in The Client Command). The wireless, cloistered +hosts never roam, are not associated with a member, and so are +"campus" clients, issued keys with commands like this:+./abbey client campus new-host-name +--6.1. Use Cloister Apt Cache
++6.1. Use Cloister Apt Cache
The Apt-Cacher:TNG program does not work well on the frontier, so is @@ -1800,7 +1902,7 @@ while. copy: content: > Acquire::http::Proxy - "http://apt-cacher.{{ domain_priv }}.:3142"; + "http://apt-cacher.birchwood.private.:3142"; dest: /etc/apt/apt.conf.d/01proxy mode: u=rw,g=r,o=r @@ -1851,10 +1953,55 @@ Raspberry Pis (architecture
aarch64
) only.-6.3. Install Emacs
+++6.3. Install Munin Node
++Each cloistered host is a Munin node. +
+ +++ +roles_t/abbey-cloister/tasks/main.yml+- name: Install Munin Node. + become: yes + apt: + pkg: munin-node + +- name: Add {{ ansible_user }} to Munin group. + become: yes + user: + name: "{{ ansible_user }}" + append: yes + groups: munin +
++Again, one of our cloistered hosts has sensors producing unfortunate +measurements. The next task configures Anoat's
+ +libsensors
to ignore +them. +++roles_t/abbey-cloister/tasks/main.yml+- name: Configure {{ inventory_hostname }} sensors(1). + copy: + content: | + chip "iwlwifi_1-virtual-0" + ignore temp1 + + chip "acpitz-acpi-0" + ignore temp1 + dest: /etc/sensors.d/site.conf + when: inventory_hostname == 'anoat' +++-6.4. Install Emacs
++The monks of the abbey are masters of the staff and Emacs.
@@ -1919,7 +2066,7 @@ Listing them (e.g. runningowdir /26.nnnnnnnn
orowdir below. A test session is shown below. -
+monkey@new$ owdir ... /26.2153B6000000/ @@ -2355,8 +2502,8 @@ described in the final section, Configure Cameras, bel-8.4. Include Abbey Variables
++-8.4. Include Abbey Variables
Private variables in
private/vars-abbey.ymlare needed, and included @@ -2518,7 +2665,7 @@ theapg -n 1 -x 12 -m 12
command.-@@ -2782,8 +2929,8 @@ machine simply by adding it to theprivate/vars-abbey.ymlzoneminder_dbpass: gakJopbikJadsEdd +private_ex/vars-abbey.ymlzoneminder_dbpass: gakJopbikJadsEddtvrs
group.-9.3. Include Abbey Variables
++9.3. Include Abbey Variables
Private variables in
private/vars-abbey.ymlare needed, as in the @@ -2991,7 +3138,7 @@ kept inprivate/vars-abbey.yml, and generated e.g. with theapg -n
-@@ -3329,7 +3476,7 @@ the list of "inputs" available in a postal code typically ends with the OTA (over the air) broadcasts. -private/vars-abbey.ymlmythtv_dbpass: daJkibpoJkag +private_ex/vars-abbey.ymlmythtv_dbpass: daJkibpoJkag+$ tv_grab_zz_sdjson --configure --config-file .mythtv/Mr.Antenna.xml Cache file for lineups, schedules and programs. Cache file: [/home/mythtv/.xmltv/tv_grab_zz_sdjson.cache] @@ -3714,12 +3861,13 @@ except the roles are found in@@ -4514,7 +4661,7 @@ interface onInstitute/roles/as well asroles/. ansible_become_password: "{{ become_anoat }}" dantooine: ansible_become_password: "{{ become_dantooine }}" - # WebTVs (Desktops) - devaron: + # Campus kamino: ansible_become_password: "{{ become_kamino }}" kessel: ansible_become_password: "{{ become_kessel }}" + ord-mantell: + ansible_become_password: "{{ become_ord_mantell }}" # Notebooks endor: ansible_become_password: "{{ become_endor }}" @@ -3728,7 +3876,7 @@ except the roles are found inInstitute/roles/as well asroles/. ansible_user: matt ansible_become_password: "{{ become_geonosis }}" postfix_mydestination: >- - geonosis.{{ domain_priv }} + geonosis.birchwood.private geonosis geonosis.localdomain localhost.localdomain @@ -3746,9 +3894,9 @@ except the roles are found inInstitute/roles/as well asroles/. campus: hosts: anoat: - devaron: kamino: kessel: + ord-mantell: weather: hosts: anoat: @@ -3760,16 +3908,15 @@ except the roles are found inInstitute/roles/as well asroles/. dantooine: webtvs: hosts: - kessel: - devaron: kamino: + kessel: + ord-mantell: notebooks: hosts: endor: geonosis: builders: hosts: - devaron: geonosis: kamino:new
is namedwlan0
.-=/etc/network/interfaces.d/wifi-auto wlan0 +/etc/network/interfaces.d/wifiauto wlan0 iface wlan0 inet dhcp wpa-ssid "Birchwood Abbey" wpa-psk "PASSWORD" @@ -4839,7 +4986,7 @@ toprivate/db.campus_vpn.)