jamesread.soe Ansible Collection (jwr-soe-ansible)
An Ansible collection of roles for James Read's (JWR) Standard Operating Environment (SOE).
This is published on Ansible Galaxy as jamesread.soe.
Roles
infra layer
- Nothing here yet
machine layer
- jamesread.soe.machine_i3 - Install i3wm.
- jamesread.soe.machine_jenkins_slave - Installs a Jenkins slave.
- jamesread.soe.machine_k8s - Install a k8s node (could be a control/worker).
- jamesread.soe.machine_kiosk - My heads up display (kiosk)
- jamesread.soe.machine_podman - Installs podman.
- jamesread.soe.machine_sysadmin_utils - Various utils used for sysadmins.
- jamesread.soe.machine_wol - Enable Wake on LAN.
- jamesread.soe.machine_workstation - My desktop workstation
workload layer
- jamesread.soe.podman_dashboard - Installs a Dashboard container.
- jamesread.soe.podman_efk - Installs a EFK stack.
- jamesread.soe.podman_grafana - Installs a Grafana container.
- jamesread.soe.podman_loki - Install loki as a podman container.
- jamesread.soe.podman_openhab - Installs a OpenHAB container.
- jamesread.soe.podman_prom_gcal_exporter - Installs a Google Calendar Prometheus exporter.
- jamesread.soe.podman_prom_gmail_exporter - Installs a gmail exporter container.
- jamesread.soe.podman_prometheus - Installs a Prometheus container.
- jamesread.soe.podman_promtail - Installs a promtail container.
- jamesread.soe.podman_traefik - Installs a traefik container.
- jamesread.soe.systemd_service_apachephp - Installs httpd.
- jamesread.soe.systemd_service_condor - Installs condor as a service.
- jamesread.soe.systemd_service_filebeat - Installs a filebeat service.
- jamesread.soe.systemd_service_haproxy - Installs haproxy as a service.
- jamesread.soe.systemd_service_jenkins - Installs jenkins as a service.
- jamesread.soe.systemd_service_journalbeat - Installs a journalbeat systemd service.
- jamesread.soe.systemd_service_kvmlibvirt - Installs kvm, libvirt and essential virt tools.
misc layer
- jamesread.soe.common - Common/baseline config. Prometheus node exporter, sshd, SMART, etc.
- jamesread.soe.libvirt_vm - Creates a libvirtvm.
Usage
Install the collection like this
ansible-galaxy collection install jamesread.soe
Create a playbook like this
#!/usr/bin/env ansible-playbook
- hosts:
- all
roles:
- name: jamesread.soe.common
myVar: foobar
Principles
- Separation of data (mostly config files) and reusable code (roles).
- Separation of layers (ie, containers should not depend on an OS thing)
Layers
- Infra: (nothing here yet)
- OS Configuration (Physical/Virtual machine) -
machine_
- OS Apps:
systemd_service_*
- OS Containers:
podman_*
Notes
No site.yml
. I started off with this, but honestly have no idea where it's
supposed to fit if you're trying to promote role re-use and separation of
data/code.