#!/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"