2023-04-26 21:58:23 +00:00
|
|
|
#!/usr/bin/env sh
|
2022-12-23 17:52:33 +00:00
|
|
|
|
2023-01-16 14:31:25 +00:00
|
|
|
set -e
|
|
|
|
|
2022-12-26 01:13:06 +00:00
|
|
|
usage() {
|
|
|
|
printf '%s\n' "Usage:"
|
2023-01-16 14:27:07 +00:00
|
|
|
printf '$ %s\n' "$0 [-h|--help]"
|
2023-04-26 21:58:23 +00:00
|
|
|
printf '$ %s\n' "$0 [--dry] os"
|
|
|
|
printf '$ %s\n' "$0 [--dry] docker"
|
2023-07-02 00:09:57 +00:00
|
|
|
printf '$ %s\n' "$0 [--dry] firewall"
|
|
|
|
printf '$ %s\n' "$0 [--dry] ssh"
|
2023-04-26 21:58:23 +00:00
|
|
|
printf '$ %s\n' "$0 [--dry] users [-i|--init]"
|
|
|
|
printf '$ %s\n' "$0 [--dry] reboot [-f|--force]"
|
|
|
|
printf '$ %s\n' "$0 [--dry] services [-d|--down] [SINGLE_SERVICE]"
|
2023-01-16 14:27:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
install_modules() {
|
|
|
|
if [ -z "$(ansible-galaxy collection list community.general 2>/dev/null)" ]; then
|
|
|
|
ansible-galaxy collection install community.general
|
|
|
|
fi
|
2022-12-23 17:52:33 +00:00
|
|
|
}
|
|
|
|
|
2023-05-29 00:29:13 +00:00
|
|
|
BASE_CMD="ansible-playbook playbook.yml --ask-vault-pass --ask-become-pass"
|
2023-01-04 20:02:33 +00:00
|
|
|
cd "$(dirname "$0")" || exit 255
|
2023-05-29 00:29:13 +00:00
|
|
|
|
2023-04-26 21:58:23 +00:00
|
|
|
if [ "$1" = "--dry" ]; then
|
|
|
|
EXEC="echo"
|
|
|
|
shift
|
|
|
|
else
|
|
|
|
EXEC="eval"
|
|
|
|
fi
|
|
|
|
|
2023-05-29 00:29:13 +00:00
|
|
|
if [ "$#" -gt 0 ]; then
|
|
|
|
TAG="$1"
|
|
|
|
shift
|
|
|
|
fi
|
2022-12-23 17:52:33 +00:00
|
|
|
|
2023-04-26 21:58:23 +00:00
|
|
|
case $TAG in
|
2023-03-29 18:41:30 +00:00
|
|
|
"")
|
2023-05-28 15:58:12 +00:00
|
|
|
install_modules; $EXEC "$BASE_CMD" ;;
|
|
|
|
os|docker|firewall|ssh)
|
|
|
|
install_modules; $EXEC "$BASE_CMD --tags '$TAG'" ;;
|
2023-04-26 21:58:23 +00:00
|
|
|
users)
|
|
|
|
install_modules
|
|
|
|
|
|
|
|
if [ "$1" = "-i" ] || [ "$1" = "--init" ]; then
|
|
|
|
$EXEC "$BASE_CMD --user root --tags '$TAG'"
|
|
|
|
else
|
|
|
|
$EXEC "$BASE_CMD --tags '$TAG'"
|
|
|
|
fi
|
|
|
|
;;
|
2023-03-29 18:41:30 +00:00
|
|
|
reboot)
|
|
|
|
install_modules
|
2023-04-26 21:58:23 +00:00
|
|
|
|
|
|
|
if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then
|
|
|
|
$EXEC "$BASE_CMD --tags '$TAG' --extra-vars 'force_reboot=true'"
|
2023-03-29 18:41:30 +00:00
|
|
|
else
|
2023-04-26 21:58:23 +00:00
|
|
|
$EXEC "$BASE_CMD --tags '$TAG' --extra-vars 'reboot=true'"
|
2023-03-29 18:41:30 +00:00
|
|
|
fi
|
|
|
|
;;
|
|
|
|
services)
|
|
|
|
install_modules
|
2023-04-26 21:58:23 +00:00
|
|
|
|
|
|
|
if [ "$1" = "-d" ] || [ "$1" = "--down" ]; then
|
|
|
|
DOWN=1
|
|
|
|
shift
|
2023-03-29 18:41:30 +00:00
|
|
|
fi
|
2023-04-26 21:58:23 +00:00
|
|
|
|
|
|
|
if [ -z "$DOWN" ] && [ -n "$1" ]; then
|
|
|
|
VARS="single_service=$1"
|
|
|
|
elif [ -n "$DOWN" ] && [ -z "$1" ]; then
|
|
|
|
VARS="stop=true"
|
|
|
|
elif [ -n "$DOWN" ] && [ -n "$1" ]; then
|
|
|
|
VARS='{"stop": true, "single_service": "'$1'"}'
|
|
|
|
fi
|
|
|
|
|
|
|
|
$EXEC "$BASE_CMD --tags '$TAG' $(test -z "$VARS" || echo "--extra-vars '$VARS'")"
|
2023-03-29 18:41:30 +00:00
|
|
|
;;
|
|
|
|
-h|--help)
|
|
|
|
usage ;;
|
|
|
|
*)
|
|
|
|
usage >&2; exit 1 ;;
|
|
|
|
esac
|