Commit the accumulated infrastructure work that was living only in the working tree: monitoring stack, emergency access/bot, gyro allocator, grimmory, adguard, backup audit and the OpenCode agent definitions. Also ignore Python bytecode, local archives and Nix/direnv artifacts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTocXkGUUazHdKKd3r9k71
122 lines
3.2 KiB
YAML
122 lines
3.2 KiB
YAML
---
|
|
- name: Install Node Exporter
|
|
ansible.builtin.apt:
|
|
name: prometheus-node-exporter
|
|
state: present
|
|
when: monitoring_exporter_install_node
|
|
|
|
- name: Create Node Exporter textfile directory
|
|
ansible.builtin.file:
|
|
path: "{{ monitoring_exporter_textfile_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
when: monitoring_exporter_install_node
|
|
|
|
- name: Create Node Exporter systemd override directory
|
|
ansible.builtin.file:
|
|
path: /etc/systemd/system/prometheus-node-exporter.service.d
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
when: monitoring_exporter_install_node
|
|
|
|
- name: Configure Node Exporter collectors
|
|
ansible.builtin.copy:
|
|
dest: /etc/systemd/system/prometheus-node-exporter.service.d/override.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
[Service]
|
|
ExecStart=
|
|
ExecStart=/usr/bin/prometheus-node-exporter --web.listen-address={{ monitoring_exporter_node_listen_address }} --collector.systemd --collector.textfile.directory={{ monitoring_exporter_textfile_dir }}
|
|
when: monitoring_exporter_install_node
|
|
notify:
|
|
- reload systemd
|
|
- restart node exporter
|
|
|
|
- name: Ensure Node Exporter is enabled and running
|
|
ansible.builtin.systemd:
|
|
name: prometheus-node-exporter
|
|
enabled: true
|
|
state: started
|
|
when: monitoring_exporter_install_node
|
|
|
|
- name: Install SMART Exporter dependencies
|
|
ansible.builtin.apt:
|
|
name:
|
|
- jq
|
|
- smartmontools
|
|
state: present
|
|
when: monitoring_exporter_install_smart
|
|
|
|
- name: Remove obsolete SMART Exporter container unit
|
|
ansible.builtin.systemd:
|
|
name: homelab-smartctl-exporter
|
|
enabled: false
|
|
state: stopped
|
|
failed_when: false
|
|
when: monitoring_exporter_install_smart
|
|
|
|
- name: Install SMART metric collection script
|
|
ansible.builtin.template:
|
|
src: smartctl-metrics.sh.j2
|
|
dest: /usr/local/sbin/homelab-smartctl-metrics
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
when: monitoring_exporter_install_smart
|
|
|
|
- name: Install SMART metric collection service
|
|
ansible.builtin.copy:
|
|
dest: /etc/systemd/system/homelab-smartctl-metrics.service
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
[Unit]
|
|
Description=Publish SMART metrics for Node Exporter
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/local/sbin/homelab-smartctl-metrics
|
|
when: monitoring_exporter_install_smart
|
|
notify: reload systemd
|
|
|
|
- name: Install SMART metric collection timer
|
|
ansible.builtin.copy:
|
|
dest: /etc/systemd/system/homelab-smartctl-metrics.timer
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
[Unit]
|
|
Description=Collect SMART metrics every 15 minutes
|
|
|
|
[Timer]
|
|
OnBootSec=2m
|
|
OnUnitActiveSec=15m
|
|
Persistent=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
when: monitoring_exporter_install_smart
|
|
notify: reload systemd
|
|
|
|
- name: Enable SMART metric collection timer
|
|
ansible.builtin.systemd:
|
|
name: homelab-smartctl-metrics.timer
|
|
daemon_reload: true
|
|
enabled: true
|
|
state: started
|
|
when: monitoring_exporter_install_smart
|
|
|
|
- name: Run initial SMART metric collection
|
|
ansible.builtin.systemd:
|
|
name: homelab-smartctl-metrics.service
|
|
state: started
|
|
when: monitoring_exporter_install_smart
|