2020-03-21 19:01:42 +00:00
|
|
|
#!/bin/sh
|
2020-03-21 16:06:40 +00:00
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2020-03-22 19:30:44 +00:00
|
|
|
default_inventory="hosts"
|
|
|
|
default_vault_file=".vault_password"
|
|
|
|
|
2020-03-21 16:06:40 +00:00
|
|
|
playbook="$INPUT_PLAYBOOK"
|
2020-03-24 21:23:41 +00:00
|
|
|
directory="$INPUT_DIRECTORY"
|
2020-03-21 16:06:40 +00:00
|
|
|
key="$INPUT_KEY"
|
2020-03-22 19:30:44 +00:00
|
|
|
inventory="$INPUT_INVENTORY"
|
|
|
|
vault_password="$INPUT_VAULT_PASSWORD"
|
2020-03-21 16:06:40 +00:00
|
|
|
options="$INPUT_OPTIONS"
|
|
|
|
|
|
|
|
if test -z "$playbook"; then
|
|
|
|
echo "You need to specify 'playbook' input (Ansible playbook filepath)"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2020-03-21 19:54:44 +00:00
|
|
|
if test -z "$key"; then
|
|
|
|
echo "You need to specify 'key' input (SSH private key)"
|
|
|
|
exit 1
|
2020-03-21 16:06:40 +00:00
|
|
|
fi
|
|
|
|
|
2020-03-24 21:44:07 +00:00
|
|
|
if test -n "$directory"; then
|
|
|
|
cd "$directory"
|
|
|
|
fi
|
2020-03-24 21:23:41 +00:00
|
|
|
|
2020-03-21 19:54:44 +00:00
|
|
|
mkdir -p "$HOME/.ssh"
|
|
|
|
echo "$key" > "$HOME/.ssh/id_rsa"
|
|
|
|
chmod 600 "$HOME/.ssh/id_rsa"
|
|
|
|
|
2020-03-22 19:30:44 +00:00
|
|
|
if [ "$inventory" ]; then
|
|
|
|
echo "Writing inventory with custom content:"
|
|
|
|
echo -e "$inventory" | tee "$default_inventory"
|
|
|
|
options="${options} --inventory ${default_inventory}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$vault_password" ]; then
|
|
|
|
echo "Setting vault password"
|
|
|
|
echo "$vault_password" > "$default_vault_file"
|
|
|
|
options="${options} --vault-password-file ${default_vault_file}"
|
|
|
|
fi
|
|
|
|
|
2020-03-21 16:17:56 +00:00
|
|
|
echo "$options"
|
|
|
|
echo "$playbook"
|
2020-03-21 16:10:07 +00:00
|
|
|
|
2020-03-21 16:06:40 +00:00
|
|
|
export ANSIBLE_HOST_KEY_CHECKING=False
|
|
|
|
export ANSIBLE_FORCE_COLOR=True
|
|
|
|
|
2020-03-22 19:30:44 +00:00
|
|
|
ansible-playbook $options $playbook
|