Joshua Boniface
5cd9566163
Explicitly use systemctl in logrotate
...
For some reason (Debian bug?) the default rsyslog-rotate script was not
properly rotating rsyslog logfiles. Instead, explicitly call systemctl
kill -s HUP for this, using a full path.
2023-09-01 15:42:29 -04:00
Joshua Boniface
57010260bd
Use full debian_version
2023-09-01 15:42:29 -04:00
Joshua Boniface
2a925904e4
Alter format of Debian version in MOTD
2023-09-01 15:42:29 -04:00
Joshua Boniface
a79961605a
Replace per-user htoprc with system-wide config
...
Also update to newer htoprc layout from BLSE.
2023-09-01 15:42:29 -04:00
Joshua Boniface
5a48ec4d79
Ensure CPU tuning is only applied on Debian 11+
2023-09-01 15:42:29 -04:00
Joshua Boniface
07d75573d6
Add updated tuning configuration
...
Uses a much nicer CPU tuning configuration, leveraging systemd's
AllowedCPUs and CPUAffinity options within a set of slices (some
default, some custom).
Configuration is also greatly simplified versus the previous
implementation, simply asking for a number of CPUS for both the system
and OSDs, and calculating everything else that is required.
Also switches (back) to the v2 unified cgroup hierarchy by default as
required by the systemd AllowedCPUs directive.
2023-09-01 15:42:29 -04:00
Joshua Boniface
8f685116b7
Add Ceph monitor backup
2023-09-01 15:42:29 -04:00
Joshua Boniface
c3ce11dacf
Fix update-motd so it runs properly
2023-09-01 15:42:29 -04:00
Joshua Boniface
267494d58a
Add lm-sensors configuration
2023-09-01 15:42:29 -04:00
Joshua Boniface
d94f587e37
Remove obsolete logrotate settings
2023-09-01 15:42:29 -04:00
Joshua Boniface
73e1f2042c
Add extra space for clarity
2023-09-01 15:42:29 -04:00
Joshua Boniface
30ddeb0fee
Update MOTD automatically on boot
...
The cron every minute was pointlessly excessive considering this doesn't
actually change minute-to-minute.
2023-09-01 15:42:29 -04:00
Joshua Boniface
86026de8ef
Adjust colour scheme of MOTD
2023-09-01 15:42:29 -04:00
Joshua Boniface
8e1d005d43
Obtain more information for MOTD header
...
Add model and serial numbers to the vendor, and put this on its own
line. Also use BASH for proper syntax formatting. Reformat the header to
be a more compact format.
2023-09-01 15:42:29 -04:00
Joshua Boniface
b987c4ea8f
Adjust GRUB_DIST and add UEFI regeneration
...
Keeps the UEFI boot list cleaned and consistent
2023-09-01 15:42:29 -04:00
Joshua Boniface
08c8be66b3
Increase timeout threshold for freshness
2023-09-01 15:42:28 -04:00
Joshua Boniface
00482aec06
Fix the other instance too
2023-09-01 15:42:28 -04:00
Joshua Boniface
da98a4d445
Ignore errors about removing keys
2023-09-01 15:42:28 -04:00
Joshua Boniface
e8fe165e00
Further optimize ownership agent output
2023-09-01 15:42:28 -04:00
Joshua Boniface
cbea6e284c
Make ownership check consistent with cmk-agent 2.1
...
The new CheckMK agent uses UID 998 (dynamic) for itself. This causes
ownership problems with the old logic of this check. Move instead to a
range, where the UIDs from 200-599 are reserved for administrators, and
check for this range explicitly. Also eliminates the exceptions for ceph
and 2000 from previous iterations.
2023-09-01 15:42:28 -04:00
Joshua Boniface
9e20e47903
Update freshness checks
2023-09-01 15:42:28 -04:00
Joshua Boniface
d47d320bb3
Replace freshness and kernel_version checks
...
Use an updated plugin from BLSE that uses needrestart instead of manual
parsing of these elements.
2023-09-01 15:42:28 -04:00
Joshua Boniface
ea9fe5570f
Add method to remove inactive SSH keys
2023-09-01 15:42:28 -04:00
Joshua Boniface
ce9304e43e
Populate /etc/timezone as well
2023-09-01 15:42:28 -04:00
Joshua Boniface
aa6b4ac3dc
Make locale generation universal
...
Don't rely on a notify/handler, just do it every time in the base role.
2023-09-01 15:42:28 -04:00
Joshua Boniface
35dcf979f4
Customize grub distributor
2023-09-01 15:42:28 -04:00
Joshua Boniface
ba81a106d2
Set postfix to listen on all interfaces
...
Binding to just localhost was causing problems.
2023-09-01 15:42:28 -04:00
Joshua Boniface
a87745d640
Fix name of task
2023-09-01 15:42:28 -04:00
Joshua Boniface
77be96bf6f
Fix a few more splits
2023-09-01 15:42:28 -04:00
Joshua Boniface
95b47f8b09
Fix a few more extraneous splits
...
Just use this_node if applicable, or the raw node.hostname.
2023-09-01 15:42:28 -04:00
Joshua Boniface
d24cb8a8ef
Unify and standardize inventory_hostname
...
This was causing some confusing conflicts, so create a new fact called
"this_node" which is inventory_hostname.split('.')[0], i.e. the short
name, and use that everywhere instead of an FQDN or true inventory
hostname.
2023-09-01 15:42:28 -04:00
Joshua Boniface
056c325486
Add option for setting CPU governor
...
Allows the administrator to set a CPU frequency governor if they need
to, though the default of ondemand is usually sufficient.
2023-09-01 15:42:28 -04:00
Joshua Boniface
fc5bcf139c
Fix name of IPMI check again
2023-09-01 15:42:28 -04:00
Joshua Boniface
44cedf66c9
Fix name of ipmi check
2023-09-01 15:42:28 -04:00
Joshua Boniface
9f7dbfb4f8
Add IPMI check to tasks
2023-09-01 15:42:28 -04:00
Joshua Boniface
b9ae4d1009
Adjust headers and add LOM check
2023-09-01 15:42:27 -04:00
Joshua Boniface
48fb21af75
Add node list to PVC MOTD
2023-09-01 15:42:27 -04:00
Joshua Boniface
e009cf4076
Fix whitespaced manufacturer and bad [[
2023-09-01 15:42:27 -04:00
Joshua Boniface
e65f1d15a6
Add coordinator state to MOTD
2023-09-01 15:42:27 -04:00
Joshua Boniface
894ce9b517
Support unknown manufacturers in MOTD
2023-09-01 15:42:27 -04:00
Joshua Boniface
b814ec60f6
Add resolv.conf customization
2023-09-01 15:42:27 -04:00
Joshua Boniface
ddecb94348
Disable unified cgroup heirarchy on kernel cmdline
...
This is required on Debian 11 to use the cset tool, since the newer
systemd implementation of a unified cgroup hierarchy is not compatible
with the cset tool.
Ref for future use:
https://github.com/lpechacek/cpuset/issues/40
2023-09-01 15:42:27 -04:00
Joshua Boniface
be3ce67574
Use inventory_hostname in IPMI fragment
2023-09-01 15:42:27 -04:00
Joshua Boniface
5f05835721
Update bondX configuration
2023-09-01 15:42:27 -04:00
Joshua Boniface
9f16995f59
Add smartmontools to base package list
2023-09-01 15:42:27 -04:00
Joshua Boniface
45424a28ce
Fix bad flag
2023-09-01 15:42:27 -04:00
Joshua Boniface
044a14fa6d
Add package installs for different Debian versions
2023-09-01 15:42:27 -04:00
Joshua Boniface
ae40227ea1
Move paths and keys to defaults
2023-09-01 15:42:27 -04:00
Joshua Boniface
86eaeed2b4
Fix sources.list for Bullseye
2023-09-01 15:42:26 -04:00
Joshua Boniface
4b0a4ae73c
Fix bad Ansible variable name
2023-09-01 15:42:26 -04:00
Joshua Boniface
7bacbd5dd6
Don't fail if IPMI tasks fail
2023-09-01 15:42:26 -04:00
Joshua Boniface
eef0f959dd
Add GRUB, Plymouth themes and issue for PVC
2023-09-01 15:42:26 -04:00
Joshua Boniface
6d3e5ac728
Fix zkcli for good
2023-09-01 15:42:26 -04:00
Joshua Boniface
bace67b8bf
Add GRUB configuration to Ansible role
2023-09-01 15:42:26 -04:00
Joshua Boniface
35089f6dda
Fix zkcli alias to use hostname
2023-09-01 15:42:26 -04:00
Joshua Boniface
9dc9139c35
Use short ansible_hostname in ipmi fragment
2023-09-01 15:42:26 -04:00
Joshua Boniface
329bc9690e
Add ipmitool to packages list
2023-09-01 15:42:26 -04:00
Joshua Boniface
0fc889df32
Ensure we can connect to Patroni
2023-09-01 15:42:26 -04:00
Joshua Boniface
c9df64bc7d
Ensure deb-src is present for bullseye
2023-09-01 15:42:26 -04:00
Joshua Boniface
3a67dc129b
Ensure DEBIAN_FRONTEND is noninteractive
2023-09-01 15:42:26 -04:00
Joshua Boniface
a548bdcc6a
Use inventory_hostname for IPMI dict
2023-09-01 15:42:26 -04:00
Joshua Boniface
6104e0a5a5
Use independent fact to work around codename
2023-09-01 15:42:26 -04:00
Joshua Boniface
5c46bb0db7
Ensure backup_keys isn't empty
2023-09-01 15:42:25 -04:00
Joshua Boniface
d69770b776
Avoid writing hosts if empty
2023-09-01 15:42:25 -04:00
Joshua Boniface
f4e49b9d3e
Ensure apt-update runs if configs update
2023-09-01 15:42:25 -04:00
Joshua Boniface
9438ab46d7
Add bullseye support
2023-09-01 15:42:25 -04:00
Joshua Boniface
dc83f91bd8
Add directory creation to backup script
2023-09-01 15:42:25 -04:00
Joshua Boniface
5466df7065
Add PostgreSQL to daily backup script
2023-09-01 15:42:25 -04:00
Joshua Boniface
c9742fe2e5
Update tags and fix backup keys to var
2023-09-01 15:42:25 -04:00
Joshua Boniface
7c7ca4a229
Allow inter-cluster orphan NTP sync
...
Due to the requirement of Ceph to have all peer nodes tightly
synchronized with each other to come online, PVC nodes need a way to
synchronize to each other even in the absence of an external time
reference. This is especially prevalent if a set of nodes are left
offline for an extended period (>1-2 weeks), since their hardware clocks
will drift. If the resulting Internet connectivity is then dependent on
a VM, this will cause a catch-22 and the cluster will not properly
start.
This configuration will accomplish that - if no suitable >6 stratum
peers are found, the hosts will enter orphan mode. Since they are now
all configured as "peers" with each other, they will collectively decide
on one of them to become the source and sync to it. A local stratum 10
fudge is added so that at least one of the nodes can become this source.
While this is not an ideal use of NTP, it is by far the cleanest
solution to this problem, and does not impact normal functionality when
the two configured stratum-2 servers are reachable.
2023-09-01 15:42:25 -04:00
Joshua Boniface
e53342474c
Remove GRUB config from base role
...
This is not actually ideal.
2023-09-01 15:42:25 -04:00
Joshua Boniface
4666db17cb
Fix version sorting bugs in kernel-cleanup.sh
2023-09-01 15:42:25 -04:00
Joshua Boniface
6903627150
Add additional items to base role
...
Backups, GRUB configuration, and IPMI configuration.
2023-09-01 15:42:25 -04:00
Joshua Boniface
c96ad603b0
Fix sudoers to use conditional deploy_username
2023-09-01 15:42:25 -04:00
Joshua Boniface
29363ebf80
Allow configurable fail2ban IPs
2023-09-01 15:42:25 -04:00
Joshua Boniface
d9be39a048
Allow customization of deploy username
2023-09-01 15:42:25 -04:00
Joshua Boniface
4dc5ebdba0
Move to more dynamic apt configs
...
Allow specifying repository URLs in the group_vars, and add
release-specific template files to support future version changes.
2023-09-01 15:42:25 -04:00
Joshua Boniface
57e5953fd1
Add sensible sorting of kernel removals
2023-09-01 15:42:25 -04:00
Joshua Boniface
2a72a826f5
Remove cruft and add mkpasswd setup
2023-09-01 15:42:25 -04:00
Joshua Boniface
bf02da693f
Correct bad indentation in base role
2023-09-01 15:42:25 -04:00
Joshua Boniface
1f6cb077fa
Update tags and add kernel-cleanup script
2023-09-01 15:42:25 -04:00
Joshua Boniface
c0dc6fad4e
Add some additional compression libraries
2023-09-01 15:42:25 -04:00
Joshua Boniface
a4be011884
Add local domain to resolver config
2023-09-01 15:42:25 -04:00
Joshua Boniface
075ce8ea22
Add PVC status MOTD script
2023-09-01 15:42:24 -04:00
Joshua Boniface
68a475ccf9
Set proper mode on agent plugins
2023-09-01 15:42:24 -04:00
Joshua Boniface
f86ec62416
Add check-mk-agent plugin installs
...
These are used by various Ansible tasks, even if the administrator is
not using Check_MK for monitoring.
2023-09-01 15:42:24 -04:00
Joshua Boniface
62d53b0c9c
Add PCI and USB utils
2023-09-01 15:42:24 -04:00
Joshua Boniface
a8419be587
Use generic Debian repos and PVC component
2023-09-01 15:42:24 -04:00
Joshua Boniface
777a4693a1
Improve SSH configuration for nodes
...
Ensure hostbased auth works with configs, remove erroneous old
conditional for authtypes, remove obsolete config option.
2023-09-01 15:42:24 -04:00
Joshua Boniface
88209a2b70
Use Google DNS instead of Cloudflare
...
For some reason Cloudflare works in fewer places than Google, so just
use it instead.
2023-09-01 15:42:24 -04:00
Joshua Boniface
fbbf5ffe09
Use cluster_group variable for paths
...
Instead of trying to automagic this group out of the Ansible hostvars,
just make it explicitly defined in the group_vars to avoid any
confusion.
2023-09-01 15:42:23 -04:00
Joshua Boniface
715fa103cd
Ensure uuid-runtime is installed
2023-09-01 15:42:23 -04:00
Joshua Boniface
0566aadfb0
Remove obsolete issue-gen script on install
2023-09-01 15:42:23 -04:00
Joshua Boniface
7e653d52c3
Include upstream and short names in hosts
2023-09-01 15:42:23 -04:00
Joshua Boniface
e7e7f2cc96
Don't remove nano
2023-09-01 15:42:22 -04:00
Joshua Boniface
e97ba72a14
Set timezone to be a variable
2023-09-01 15:42:22 -04:00
Joshua Boniface
7e74ce2ede
Add support for arbitrary /etc/hosts entries
2023-09-01 15:42:21 -04:00
Joshua Boniface
c85005f782
Always perform the apt-update
2023-09-01 15:42:21 -04:00
Joshua Boniface
675aa865de
Allow sysrc triggers in nodes
2023-09-01 15:42:21 -04:00
Joshua Boniface
c9393ba957
Add templating of network interfaces
...
Closes #1
2023-09-01 15:42:21 -04:00