Glossary¶
Every term used in these docs, including the ones that are not Ansible.
Ansible¶
- Ad-hoc command
- Running a single module without a playbook:
ansible rpi5 -m ping. - Agentless
- Nothing is installed on managed machines. Ansible uses SSH and the Python already present.
become- Escalate privileges, normally to root via
sudo. Nearly every play here setsbecome: true. - Control node
- The machine running
ansible-playbook. Your Mac, orubuntu-dev. - Fact
- Information Ansible collects about a host before running tasks: OS,
addresses, memory, mounts. The
Gathering Factstask. - Group
- A named set of hosts in the inventory. Groups can contain groups. A host can be in many.
group_vars- Variables applied to every host in a group. Lives in
inventory/group_vars/<group>/main.yml. - Handler
- A task that runs only if another task notified it, and only once, at the end of the play. Used for service restarts.
host_vars- Variables for one specific host.
- Idempotent
- Running it twice has the same effect as running it once. The core promise;
see
changedvsok. - Inventory
- The file listing which machines exist, how to reach them, and what groups
they belong to. Here:
inventory/hosts.local.yml, gitignored. - Jinja2
- The templating language.
{{ variable }},{% if %}. - Managed node
- A machine Ansible configures.
- Module
- A unit of functionality Ansible ships:
apt,copy,template,systemd. Tasks call modules. notify- How a task asks a handler to run.
- Play
- A mapping of one host group to a list of roles or tasks.
- Playbook
- A file containing one or more plays.
- Registered variable
- A task's result saved with
register:for a later task to inspect. - Role
- A reusable bundle of tasks, templates, handlers and defaults in a standard directory layout.
- Role defaults
roles/<role>/defaults/main.yml. The lowest-priority variables; a role's knobs. Not visible to other roles.- Task
- One unit of work. Calls exactly one module.
- Vault
ansible-vault. Encrypts secret values so they can be committed to git safely.when- A condition on a task. If false the task reports
skipping.
This repo¶
- Blast radius
- How much breaks if a change goes wrong. Rollouts here are ordered from smallest to largest.
- Canary
- The first host a change is applied to, chosen because failure there is
cheap.
ubuntu-devusually. - Capability gate vs policy gate
- A capability gate asks "can this host do this at all?" (does it have Docker). A policy gate asks "should it?" Policy is expressed only through inventory group membership, never inside a role.
- Central node / central LXC
- The machine running Grafana, Prometheus, Loki and nginx. Group
central, hostmonitor-lxc. - Collector
- Grafana Alloy running on a host, shipping its metrics and logs to the central node.
- Fleet
- All managed machines together.
- Jump host
- A machine SSH connections hop through to reach hosts on a private network.
lan_guestsare reached this way. - or-chain
- The PromQL pattern that makes host-down detection work in a push model. See The push model.
- Textfile collector
- A directory where scripts drop
.promfiles that node_exporter then publishes. How apt and reboot state become metrics.
Monitoring¶
- Alloy
- Grafana's collector agent. Replaces separate node_exporter, promtail and cAdvisor deployments.
- Alertmanager
- The component that groups, deduplicates and routes firing alerts to a contact point. Built into Grafana here.
- cAdvisor
- Container Advisor. Produces per-container CPU, memory and filesystem metrics. Needs root here, see Container metrics.
- Contact point
- Where Grafana sends a notification. Here, a webhook to the Matrix relay.
- Grafana
- Dashboards and alerting.
- LogQL
- Loki's query language. Looks like PromQL with a log-stream selector:
{unit="alloy.service"} |= "error". - Loki
- Log storage, queried by label rather than full-text index.
- node_exporter
- The standard Linux metrics exporter. Embedded in Alloy as
prometheus.exporter.unix. - Notification policy
- The routing tree deciding which contact point an alert reaches, and how often.
- Prometheus
- Time-series metrics database.
- PromQL
- Prometheus's query language.
- Provisioning
- Configuring Grafana from files on disk rather than clicking in the UI. Read only at startup, which is why changes need a restart.
- Pull vs push
- Prometheus normally pulls by scraping targets. This stack pushes via
remote-write, which changes what
upmeans. See The push model. remote_write- Prometheus's protocol for accepting metrics pushed to it.
- Silence
- Temporarily suppressing an alert in Grafana. Expires; an exclusion in the rule file does not.
- Textfile exporter
- See Textfile collector.
up- A metric that is
1when a target is reachable. In this stack it is pushed, so it vanishes rather than becoming0when a host dies.
Linux and systemd¶
apt-daily-upgrade.timer- The systemd timer that triggers unattended-upgrades. 03:00 here.
- cgroup
- Kernel mechanism limiting and accounting resources. What container metrics are derived from.
- containerd
- The container runtime under Docker. Its socket is
root:root, which is why cAdvisor needs root. - dpkg
- The low-level Debian package tool under apt. Can become "wedged" and need
dpkg --configure -a. - Drop-in
- A file in
<unit>.service.d/that overrides part of a systemd unit without editing the packaged one. - journald
- systemd's log daemon. Alloy reads it and ships to Loki.
- LXC
- Linux container. Lighter than a VM; several Proxmox guests here are LXCs.
needrestart- Reports services running outdated binaries after an upgrade. Configured in non-interactive mode here, since its default prompt would hang an unattended run.
- oneshot
- A systemd service that runs once and exits, rather than staying resident.
Persistent=true- A timer setting: if the machine was off when it should have fired, run on next boot.
- Proxmox / PVE
- The hypervisor hosting most of this fleet.
RandomizedDelaySec- Jitter on a systemd timer, so many machines do not act simultaneously.
- Tailscale
- The mesh VPN connecting most hosts.
- unattended-upgrades
- The Debian package that applies updates automatically. Configured here to apply everything and never reboot.