You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.0 KiB
54 lines
1.0 KiB
#!/bin/bash
|
|
SERVER=$1
|
|
PLAYBOOK=$2
|
|
SITE_NAME=$3
|
|
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case $1 in
|
|
-f|--force) force=1; shift ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
usage() {
|
|
echo "Usage: run-vps-playbook.sh server playbook [site_name]"
|
|
echo "server - domain or ip adress of the vps server"
|
|
echo "site_name - site name"
|
|
echo "playbook - playbook file"
|
|
}
|
|
|
|
if [[ -z "$SERVER" ]]; then
|
|
echo "You must defined SERVER as first argument"
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$PLAYBOOK" ]]; then
|
|
echo "You must defined PLAYBOOK as third argument"
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
|
|
COMMAND=$(cat <<EOF
|
|
ansible-playbook -e "lxc_host=${SERVER}"
|
|
EOF
|
|
)
|
|
|
|
if [[ -n "$SITE_NAME" ]]; then
|
|
COMMAND="${COMMAND} -e initial_site_name=${SITE_NAME}"
|
|
fi
|
|
|
|
COMMAND="${COMMAND} ${PLAYBOOK}"
|
|
|
|
if [[ -z "$force" ]]; then
|
|
printf 'Launch ansible playbook:\n%s\n' "${COMMAND}"
|
|
read -p "Are you sure? " -n 1 -r
|
|
echo # (optional) move to a new line
|
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
|
then
|
|
/bin/bash -c "${COMMAND}"
|
|
fi
|
|
else
|
|
/bin/bash -c "${COMMAND}"
|
|
fi
|