2019-11-12 17:56:16 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# $0 is a toold that allows end users to execute simple admin tasks.
|
|
|
|
#
|
|
|
|
# Arguments:
|
|
|
|
# {service}
|
|
|
|
# {action}
|
|
|
|
#
|
|
|
|
# Return codes:
|
|
|
|
# 0 Exectuted without problem
|
|
|
|
# 1 Incorrect usage pattern.
|
|
|
|
#
|
|
|
|
# This software is licensed under the AGPL 3.0 or later, by
|
|
|
|
# ubergeek <ubergeek@thunix.net>
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
NOUN=$1
|
|
|
|
VERB=$2
|
|
|
|
|
2019-11-13 01:32:55 +00:00
|
|
|
###
|
|
|
|
# Functions
|
2019-11-12 17:56:16 +00:00
|
|
|
function usage() {
|
|
|
|
cat << _EOF
|
|
|
|
$0 {service} {action}
|
|
|
|
|
|
|
|
$0 is a tool that allows for end-user execution of simple administrative tasks, in a secure fashion.
|
|
|
|
|
|
|
|
{service} and {action} are required arguments.
|
|
|
|
_EOF
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
function ansible() {
|
|
|
|
case $VERB in
|
|
|
|
run)
|
|
|
|
echo "Running the ansible playbok..."
|
|
|
|
CURDIR=`pwd`
|
|
|
|
cd /var/thunix/ansible/
|
|
|
|
git pull
|
|
|
|
cd $CURDIR
|
|
|
|
ansible-playbook -i /var/thunix/ansible/hosts /var/thunix/ansible/site.yml
|
|
|
|
;;
|
|
|
|
pull)
|
|
|
|
echo "Pulling the latest playbook..."
|
|
|
|
CURDIR=`pwd`
|
|
|
|
cd /var/thunix/ansible/
|
|
|
|
git pull
|
|
|
|
cd $CURDIR
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "That action was not recognized."
|
|
|
|
usage
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
function www() {
|
|
|
|
if [ $NOUN = "www" ]; then
|
|
|
|
WORKDIR="/var/www/thunix.cf"
|
|
|
|
fi
|
|
|
|
if [ $NOUN = "gopher" ]; then
|
|
|
|
WORKDIR="/var/gopher"
|
|
|
|
fi
|
|
|
|
case $VERB in
|
|
|
|
pull)
|
|
|
|
echo "Pulling the latest $NOUN..."
|
|
|
|
CURDIR=`pwd`
|
|
|
|
cd $WORKDIR
|
|
|
|
git pull
|
|
|
|
cd $CURDIR
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "That action was not recognized."
|
|
|
|
usage
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2019-11-13 01:32:55 +00:00
|
|
|
function manpages () {
|
|
|
|
|
|
|
|
case $VERB in
|
|
|
|
pull)
|
|
|
|
echo "Refreshing system documentation..."
|
|
|
|
CURDIR=`pwd`
|
|
|
|
cd /usr/local/man/man8
|
|
|
|
git pull
|
|
|
|
cd $CURDIR
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "That action was not recognized."
|
|
|
|
usage
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
function aptupgrade() {
|
|
|
|
apt update
|
|
|
|
apt upgrade -y
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
###
|
|
|
|
# Begin main part
|
2019-11-12 17:56:16 +00:00
|
|
|
|
|
|
|
case $NOUN in
|
|
|
|
ansible)
|
|
|
|
ansible
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
www|gopher)
|
|
|
|
www
|
|
|
|
exit 0
|
|
|
|
;;
|
2019-11-13 01:32:55 +00:00
|
|
|
manpages)
|
|
|
|
manpages
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
update)
|
|
|
|
aptupgrade
|
|
|
|
exit 0
|
|
|
|
;;
|
2019-11-12 17:56:16 +00:00
|
|
|
*)
|
|
|
|
usage
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|