From e08d15375784faa05828daf1e269f1846b14009c Mon Sep 17 00:00:00 2001 From: Bryan Joshua Pedini Date: Sat, 3 Dec 2022 15:13:54 +0100 Subject: [PATCH] added ability to execute multiple playbooks on multiple hosts truly modular --- deploy.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/deploy.sh b/deploy.sh index 5397155..453a388 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,18 +1,24 @@ #!/usr/bin/env bash if [ "$#" -lt 2 ]; then - echo "Usage: $0 [playbook...]" + echo "Usage: $0 [limit...] [playbook...]" exit fi LIMIT="" -LIMIT_PRESENT=$(echo "$1" | grep ".yml") -if [ "${LIMIT_PRESENT}" == "" ]; then - LIMIT="--limit $1" - shift -fi +PLAYBOOKS="" +for ARG in ${@}; do + echo "${ARG}" | grep ".yml" &>/dev/null + if [ $? -ne 0 ]; then + LIMIT="${LIMIT},${ARG}" + else + PLAYBOOKS="${PLAYBOOKS} ${ARG}" + fi +done +LIMIT="${LIMIT:1}" +PLAYBOOKS="${PLAYBOOKS:1}" -for PLAYBOOK in $@; do - ansible-playbook --forks 1 ${LIMIT} ${PLAYBOOK} +for PLAYBOOK in ${PLAYBOOKS}; do + ansible-playbook --forks 1 --limit ${LIMIT} ${PLAYBOOK} shift done