diff --git a/provision.sh b/provision.sh index 6040967..d1912b4 100755 --- a/provision.sh +++ b/provision.sh @@ -2,39 +2,42 @@ usage() { printf '%s\n' "Usage:" - printf '$ %s\n' "$0" + printf '$ %s\n' "$0 [-h|--help]" printf '$ %s\n' "$0 os" - printf '$ %s\n' "$0 services [SINGLE_SERVICE]" + printf '$ %s\n' "$0 docker" printf '$ %s\n' "$0 reboot [-f|--force]" + printf '$ %s\n' "$0 services [SINGLE_SERVICE]" +} + +install_modules() { + if [ -z "$(ansible-galaxy collection list community.general 2>/dev/null)" ]; then + ansible-galaxy collection install community.general + fi } cd "$(dirname "$0")" || exit 255 BASE_CMD="ansible-playbook playbook.yml --ask-vault-pass --ask-become-pass" -if [ -z "$(ansible-galaxy collection list community.general 2>/dev/null)" ]; then - ansible-galaxy collection install community.general -fi - if [ -z "$1" ]; then $BASE_CMD else case $1 in - os) - $BASE_CMD --tags os ;; - docker) - $BASE_CMD --tags docker ;; - services) - if [ -z "$2" ]; then - $BASE_CMD --tags services + os|docker) + install_modules && $BASE_CMD --tags "$1" ;; + reboot) + install_modules + if [ "$2" = "-f" ] || [ "$2" = "--force" ]; then + $BASE_CMD --tags "$1" --extra-vars "force_reboot=true" else - $BASE_CMD --tags services --extra-vars "single_service=$2" + $BASE_CMD --tags "$1" fi ;; - reboot) - if [ "$2" = "-f" ] || [ "$2" = "--force" ]; then - $BASE_CMD --tags reboot --extra-vars "force_reboot=true" + services) + install_modules + if [ -z "$2" ]; then + $BASE_CMD --tags "$1" else - $BASE_CMD --tags reboot + $BASE_CMD --tags "$1" --extra-vars "single_service=$2" fi ;; -h|--help)