Title: Deploying munin-node with drist | |
Author: Solène | |
Date: 17 April 2019 | |
Tags: drist automation openbsd | |
Description: | |
The following guide is a real world example of drist usage. We will | |
create a script to deploy munin-node on OpenBSD systems. | |
We need to create a script that will install munin-node package but | |
also configure it using the default proposal. This is done easily | |
using the **script** file. | |
#!/bin/sh | |
pkg_info | grep munin-node | |
if [ $? -ne 0 ]; then | |
pkg_add munin-node | |
munin-node-configure --suggest --shell | sh | |
rcctl enable munin_node | |
fi | |
The script contains some simple logic to prevent trying installing | |
munin-node each time we will run it, and also prevent re-configuring it | |
automatically every time. This is done by checking if pkg_info output | |
contains munin-node. | |
We also need to provide a **munin-node.conf** file to allow our munin | |
server to reach the nodes. For this how-to, I'll dump the | |
configuration in the commands using cat, but of course, you can use | |
your favorite editor to create the file, or copy an original | |
**munin-node.conf** file and edit it to suit your needs. | |
mkdir -p files/etc/munin/ | |
log_level 4 | |
log_file /var/log/munin/munin-node.log | |
pid_file /var/run/munin/munin-node.pid | |
background 1 | |
setsid 1 | |
user root | |
group wheel | |
ignore_file [\#~]$ | |
ignore_file DEADJOE$ | |
ignore_file \.bak$ | |
ignore_file %$ | |
ignore_file \.dpkg-(tmp|new|old|dist)$ | |
ignore_file \.rpm(save|new)$ | |
ignore_file \.pod$ | |
allow ^127\.0\.0\.1$ | |
allow ^192\.168\.1\.100$ | |
allow ^::1$ | |
host * | |
port 4949 | |
EOF | |
Now, we only need to use drist on the remote host: | |
drist root@myserver | |
Last version of drist as now also supports privilege escalation using | |
doas instead of connecting to root by ssh: | |
drist -s -e doas user@myserver |