From f790e2cee00a25c064e90da16f34710d2fb89f6a Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Mon, 12 Dec 2022 07:56:23 +0100 Subject: [PATCH] bundles/vnstat: rework bundle --- bundles/vnstat/files/generate-vnstati | 8 +--- bundles/vnstat/files/override.conf | 6 +++ bundles/vnstat/items.py | 67 +++++++++++---------------- bundles/vnstat/metadata.py | 13 ++++++ nodes/home/router.py | 1 - 5 files changed, 48 insertions(+), 47 deletions(-) create mode 100644 bundles/vnstat/files/override.conf diff --git a/bundles/vnstat/files/generate-vnstati b/bundles/vnstat/files/generate-vnstati index c1319d7..c72a7a9 100644 --- a/bundles/vnstat/files/generate-vnstati +++ b/bundles/vnstat/files/generate-vnstati @@ -1,12 +1,8 @@ #!/bin/bash -TARGET=$1 +set -xeuo pipefail -if [[ -z "$TARGET" ]] -then - echo "Usage: $0 " - exit 1 -fi +TARGET="/var/www/vnstat" vnstati --output "$TARGET/summary.png" --summary vnstati --output "$TARGET/top10.png" --top 10 diff --git a/bundles/vnstat/files/override.conf b/bundles/vnstat/files/override.conf new file mode 100644 index 0000000..930a139 --- /dev/null +++ b/bundles/vnstat/files/override.conf @@ -0,0 +1,6 @@ +[Service] +ExecStart= + +# --nodaemon is default. We also want --alwaysadd to include newly +# created interfaces, for example when adding vlans to the machine. +ExecStart=/usr/sbin/vnstatd --alwaysadd --nodaemon diff --git a/bundles/vnstat/items.py b/bundles/vnstat/items.py index 061baea..74b2706 100644 --- a/bundles/vnstat/items.py +++ b/bundles/vnstat/items.py @@ -1,45 +1,32 @@ -files = { - '/etc/systemd/system/vnstati.service': { - 'triggers': { - 'action:systemd-reload', - }, - }, - '/etc/systemd/system/vnstati.timer': { - 'triggers': { - 'action:systemd-reload', - }, - }, - '/etc/vnstat.conf': { - 'content_type': 'mako', - 'context': node.metadata['vnstat'], - 'triggers': { - 'svc_systemd:vnstat:restart', - }, - }, - '/usr/local/bin/generate-vnstati': { - 'mode': '0755', +files['/etc/systemd/system/vnstat.override.d/bundlewrap.conf'] = { + 'source': 'override.conf', + 'triggers': { + 'action:systemd-reload', + 'svc_systemd:vnstat:restart', }, } -if node.metadata.get('vnstat/generate-web-dashboard', False): - files['/var/www/vnstat/index.html'] = { - 'content_type': 'mako', - 'context': node.metadata['vnstat'], - } - -svc_systemd = { - 'vnstat': { - 'needs': { - 'pkg_apt:vnstat', - 'file:/etc/vnstat.conf', - }, - }, - 'vnstati.timer': { - 'needs': { - 'file:/etc/systemd/system/vnstati.service', - 'file:/etc/systemd/system/vnstati.timer', - }, - 'running': node.metadata.get('vnstat/generate-web-dashboard', False), - 'enabled': node.metadata.get('vnstat/generate-web-dashboard', False), +files['/etc/vnstat.conf'] = { + 'content_type': 'mako', + 'context': node.metadata['vnstat'], + 'triggers': { + 'svc_systemd:vnstat:restart', + }, +} + +files['/usr/local/bin/generate-vnstati'] = { + 'mode': '0755', +} + +files['/var/www/vnstat/index.html'] = { + 'content_type': 'mako', + 'context': node.metadata['vnstat'], +} + +svc_systemd['vnstat'] = { + 'needs': { + 'file:/etc/systemd/system/vnstat.override.d/bundlewrap.conf', + 'file:/etc/vnstat.conf', + 'pkg_apt:vnstat', }, } diff --git a/bundles/vnstat/metadata.py b/bundles/vnstat/metadata.py index 1b83dd7..5a4241d 100644 --- a/bundles/vnstat/metadata.py +++ b/bundles/vnstat/metadata.py @@ -14,6 +14,19 @@ defaults = { }, }, }, + 'nginx': { + 'vhosts': { + 'vnstat': {}, + }, + }, + 'systemd-timers': { + 'timers': { + 'vnstat-generate-vnstati': { + 'when': '*:0/10', + 'command': '/usr/local/bin/generate-vnstati', + }, + }, + }, 'vnstat': { 'bandwidth': '1000', }, diff --git a/nodes/home/router.py b/nodes/home/router.py index f5dfc27..d033c1c 100644 --- a/nodes/home/router.py +++ b/nodes/home/router.py @@ -161,7 +161,6 @@ nodes['home.router'] = { }, }, 'vnstat': { - 'generate-web-dashboard': True, 'interface': 'enp1s0.100', }, 'vm': {