renamed bootstrap shell script
This commit is contained in:
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
sudo ansible-playbook --ask-pass --ask-become-pass -i hosts.yml init@homeserver.yml
|
|
||||||
ansible-playbook --ask-become-pass -i hosts.test.yml administrate@homeserver.yml
|
|
||||||
120
skato-ansible.sh
Executable file
120
skato-ansible.sh
Executable file
@@ -0,0 +1,120 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
# @TODO long-term, turn this simple bash script into more complex Python Click project
|
||||||
|
|
||||||
|
SKANSIBLE_SCRIPT_PATH=$(dirname "$0")
|
||||||
|
SKANSIBLE_STAGE=1
|
||||||
|
SKANSIBLE_DEBUG=1
|
||||||
|
SKANSIBLE_UNIT_TEST=1
|
||||||
|
DEFAULT_USER=senpai
|
||||||
|
DEFAULT_SKANSIBLE_PLAY_HOST=vps
|
||||||
|
|
||||||
|
if [[ "$1" == "version" ]]; then
|
||||||
|
echo "0.0.0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "show-defaults" ]]; then
|
||||||
|
printf "User: %s\n" "$DEFAULT_USER"
|
||||||
|
printf "Expected hosts for playbook: %s\n" "$DEFAULT_SKANSIBLE_PLAY_HOST"
|
||||||
|
printf "Private SSH keys available throufh SSH agent: |\n%s\n" "$(ssh-add -l)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "start-agent" ]]; then
|
||||||
|
eval "$(ssh-agent -s)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "populate-agent" ]]; then
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
for SKANSIBLE_SSH_KEY in ~/.ssh/*; do
|
||||||
|
case $SKANSIBLE_SSH_KEY in
|
||||||
|
*.pub);;
|
||||||
|
*.old);;
|
||||||
|
*.bak);;
|
||||||
|
*/config);;
|
||||||
|
*/authorized_keys);;
|
||||||
|
*_hosts);;
|
||||||
|
*/agent);;
|
||||||
|
*) ssh-add "${SKANSIBLE_SSH_KEY}";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# @TODO improve by adding fuzzy querying or file finding pror
|
||||||
|
ssh-add "$1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "init" ]]; then
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
source "${SKANSIBLE_SCRIPT_PATH}/.env/bin/activate"
|
||||||
|
|
||||||
|
while getopts "hsdtu:p:n:" opt; do
|
||||||
|
case $opt in
|
||||||
|
h) Help "$1";;
|
||||||
|
s) SKANSIBLE_STAGE=0;;
|
||||||
|
d) SKANSIBLE_DEBUG=0;;
|
||||||
|
t) SKANSIBLE_UNIT_TEST=0;;
|
||||||
|
u) SKANSIBLE_CONN_USER="$OPTARG";;
|
||||||
|
n) SKANSIBLE_CONN_HOSTS="$OPTARG";;
|
||||||
|
p) SKANSIBLE_PLAY_HOSTS="$OPTARG";;
|
||||||
|
*) echo "Err: Invalid option set"; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$SKANSIBLE_STAGE" == 0 ]]; then
|
||||||
|
SKANSIBLE_CONN_HOSTS=${SKANSIBLE_CONN_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}_test
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$SKANSIBLE_DEBUG" == 0 ]]; then
|
||||||
|
if [[ "$SKANSIBLE_UNIT_TEST" == 0 ]]; then
|
||||||
|
sudo ansible-playbook -vvvv --ask-pass --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-root}" "init@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml" --check
|
||||||
|
else
|
||||||
|
sudo ansible-playbook -vvvv --ask-pass --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-root}" "init@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ "$SKANSIBLE_UNIT_TEST" == 0 ]]; then
|
||||||
|
sudo ansible-playbook --ask-pass --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-root}" "init@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml" --check
|
||||||
|
else
|
||||||
|
sudo ansible-playbook --ask-pass --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-root}" "init@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "bootstrap" ]]; then
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
source "${SKANSIBLE_SCRIPT_PATH}/.env/bin/activate"
|
||||||
|
|
||||||
|
while getopts "hsdtu:p:n:" opt; do
|
||||||
|
case $opt in
|
||||||
|
h) Help "$1";;
|
||||||
|
s) SKANSIBLE_STAGE=0;;
|
||||||
|
d) SKANSIBLE_DEBUG=0;;
|
||||||
|
t) SKANSIBLE_UNIT_TEST=0;;
|
||||||
|
u) SKANSIBLE_CONN_USER="$OPTARG";;
|
||||||
|
n) SKANSIBLE_CONN_HOSTS="$OPTARG";;
|
||||||
|
p) SKANSIBLE_PLAY_HOSTS="$OPTARG";;
|
||||||
|
*) echo "Err: Invalid option set"; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$SKANSIBLE_STAGE" == 0 ]]; then
|
||||||
|
SKANSIBLE_CONN_HOSTS=${SKANSIBLE_CONN_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}_test
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$SKANSIBLE_DEBUG" == 0 ]]; then
|
||||||
|
if [[ "$SKANSIBLE_UNIT_TEST" == 0 ]]; then
|
||||||
|
ansible-playbook -vvvv --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-${DEFAULT_USER}}" "administrate@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml" --check
|
||||||
|
else
|
||||||
|
ansible-playbook -vvvv --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-${DEFAULT_USER}}" "administrate@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ "$SKANSIBLE_UNIT_TEST" == 0 ]]; then
|
||||||
|
ansible-playbook --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-${DEFAULT_USER}}" "administrate@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml" --check
|
||||||
|
else
|
||||||
|
ansible-playbook --ask-become-pass -i hosts.yml --extra-vars "chosen_host=${SKANSIBLE_CONN_HOSTS}" --extra-vars "chosen_user=${SKANSIBLE_CONN_USER:-${DEFAULT_USER}}" "administrate@${SKANSIBLE_PLAY_HOSTS:-${DEFAULT_SKANSIBLE_PLAY_HOST}}.yml"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user