Skip to content

Instantly share code, notes, and snippets.

@csanquer
Created November 8, 2016 11:37
Show Gist options
  • Save csanquer/22d0a9f16a7c6f42663fd54adb6d67b5 to your computer and use it in GitHub Desktop.
Save csanquer/22d0a9f16a7c6f42663fd54adb6d67b5 to your computer and use it in GitHub Desktop.
Ansible vault and playbook bash script wrapper
#!/bin/bash
# vault password file to create
vaultPasswordFile=vault_password
#########################################
### Bash script location ###
#########################################
realpath() {
OURPWD=$PWD
cd "$(dirname "$1")"
LINK=$(readlink "$(basename "$1")")
while [ "$LINK" ]; do
cd "$(dirname "$LINK")"
LINK=$(readlink "$(basename "$1")")
done
REALPATH="$PWD/$(basename "$1")"
cd "$OURPWD"
echo "$REALPATH"
}
# current script command line call
#Work for GNU Linux and BSD and MacOSX
scriptCall="$(realpath "${BASH_SOURCE[0]}")"
# only work on GNU Linux
#scriptCall="$(readlink -f ${BASH_SOURCE[0]})"
# directory of the script
scriptDir=$(dirname "$scriptCall")
# script base name
scriptName=$(basename "$scriptCall")
if [ ! -s $scriptDir/$vaultPasswordFile ];then
echo -n 'VAULT PASSWORD : '
read -s password
echo
echo $password > $scriptDir/$vaultPasswordFile
fi
vaultOption="--vault-password-file=$scriptDir/$vaultPasswordFile"
subcommand="$@"
if [ -z "$subcommand" ];then
subcommand="--help"
fi
echo RUNNING : ansible-playbook main.yml $vaultOption $subcommand
cd $scriptDir/gcloud
ansible-playbook main.yml $vaultOption $subcommand
#!/bin/bash
# vault password file to create
vaultPasswordFile=vault_password
#########################################
### Bash script location ###
#########################################
realpath() {
OURPWD=$PWD
cd "$(dirname "$1")"
LINK=$(readlink "$(basename "$1")")
while [ "$LINK" ]; do
cd "$(dirname "$LINK")"
LINK=$(readlink "$(basename "$1")")
done
REALPATH="$PWD/$(basename "$1")"
cd "$OURPWD"
echo "$REALPATH"
}
# current script command line call
#Work for GNU Linux and BSD and MacOSX
scriptCall="$(realpath "${BASH_SOURCE[0]}")"
# only work on GNU Linux
#scriptCall="$(readlink -f ${BASH_SOURCE[0]})"
# directory of the script
scriptDir=$(dirname "$scriptCall")
# script base name
scriptName=$(basename "$scriptCall")
if [ ! -s $scriptDir/$vaultPasswordFile ];then
echo -n 'VAULT PASSWORD : '
read -s password
echo
echo $password > $scriptDir/$vaultPasswordFile
fi
vaultOption="--vault-password-file=$scriptDir/$vaultPasswordFile"
subcommand="$@"
if [ -z "$subcommand" ];then
subcommand="--help"
fi
echo RUNNING : ansible-vault $vaultOption $subcommand
ansible-vault $vaultOption $subcommand
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment