Verkos/Generated/setup-salt-minion.sh

52 lines
1.4 KiB
Bash

#!/bin/ash
master=x.x.x.x
#Usage: pkgs 'htop tmux emacs' [update]
pkgs() {
if [ "$2" == "update" ]; then
apk update
fi
if [ "$1" != "" ]; then
apk add $1
fi
}
#Usage: salt_minion
#Variables: master=ip.addr.of.master
salt_minion() {
if [ -f /etc/salt/minion ]; then
cp /etc/salt/minion /etc/salt/minion.bak
fi
default_master=$(grep -E '^#master: salt$' /etc/salt/minion)
master_ip=$(grep -E '^master: (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' /etc/salt/minion)
master_fqdn=$(grep -E '^master: ([a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]\.)+[a-zA-Z]{2,}$' /etc/salt/minion)
if [ "$default_master" != "" ] && [ "$master_ip" == "" ] && [ "$master_fqdn" = "" ]; then
sed -i 's/^#master: salt$/master: '$master'/' /etc/salt/minion
elif [ "$master_ip" != "" ] || [ "$master_fqdn" != "" ]; then
sed -i 's/^master: .*$/master: '$master'/' /etc/salt/minion
fi
}
#Usage: enable_services default 'lighttpd rsyslog samba iptables'
enable_services() {
for service in $2; do
rc-update add $service $1
done
}
#Usage: change_services start 'lighttpd rsyslog samba iptables'
#Variables:
change_services() {
for service in $2; do
rc-service $service $1
done
}
pkgs "python3 grep salt-minion" true
salt_minion
enable_services default "salt-minion"
change_services start "salt-minion"