| @@ -0,0 +1,37 @@ | |||||
| #!/usr/bin/env bash | |||||
| # | |||||
| # Wrapper script for the entire update procedure including | |||||
| # * updating git repo | |||||
| # * downloading roles | |||||
| # * running playbook | |||||
| # | |||||
| # This script first asks for the passwords for all the hosts and then pipes them | |||||
| # to the ansible playbook wrapper script, so that we don't need to wait for the | |||||
| # merging and downloading to finish, before being asked for the passwords. | |||||
| # | |||||
| # exit on errors | |||||
| set -e | |||||
| # set playbook root path | |||||
| root=$(dirname "$(readlink -f "$0")")/../.. | |||||
| # capture passwords for all hosts | |||||
| for host in "$root"/inventory/*.yml; do | |||||
| read -rp "sudo password for $(basename "$host"): " -s pw | |||||
| pipeinput+="$pw\n" | |||||
| echo | |||||
| done | |||||
| # merge upstream master branch | |||||
| git -C "$root" pull upstream master | |||||
| # check the changelog before updating | |||||
| less CHANGELOG.md | |||||
| read -r | |||||
| # download upstream roles | |||||
| make -f "$root"/Makefile roles | |||||
| # run ansible-playbook on all hosts | |||||
| echo -e "$pipeinput" | bash "$root"/inventory/scripts/ansible-all-hosts.sh | |||||