added ability to execute multiple playbooks on multiple hosts

truly modular
This commit is contained in:
Bryan Joshua Pedini 2022-12-03 15:13:54 +01:00
parent c9d5b26ee2
commit e08d153757
1 changed files with 14 additions and 8 deletions

View File

@ -1,18 +1,24 @@
#!/usr/bin/env bash
if [ "$#" -lt 2 ]; then
echo "Usage: $0 <limit> <playbook> [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