mirror of
https://github.com/dawidd6/action-ansible-playbook.git
synced 2024-11-22 15:32:18 +00:00
55 lines
1.3 KiB
Bash
Executable file
55 lines
1.3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
inventory_file="hosts"
|
|
vault_password_file=".vault_password"
|
|
|
|
playbook="$INPUT_PLAYBOOK"
|
|
directory="$INPUT_DIRECTORY"
|
|
key="$INPUT_KEY"
|
|
inventory="$INPUT_INVENTORY"
|
|
vault_password="$INPUT_VAULT_PASSWORD"
|
|
options="$INPUT_OPTIONS"
|
|
|
|
if test -z "$playbook"; then
|
|
echo "::error::You need to specify 'playbook' input (Ansible playbook filepath)"
|
|
exit 1
|
|
fi
|
|
|
|
if test -z "$key"; then
|
|
echo "::error::You need to specify 'key' input (SSH private key)"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$HOME/.ssh"
|
|
echo "$key" > "$HOME/.ssh/id_rsa"
|
|
chmod 600 "$HOME/.ssh/id_rsa"
|
|
|
|
if test -n "$directory"; then
|
|
echo "==> Changing directory to: $directory"
|
|
cd "$directory"
|
|
fi
|
|
|
|
if test -n "$options"; then
|
|
options="$(echo "$options" | tr '\n' ' ' | awk '{$1=$1};1')"
|
|
fi
|
|
|
|
if test -n "$inventory"; then
|
|
echo "==> Setting inventory"
|
|
echo "$inventory" > "$inventory_file"
|
|
options="$options --inventory $inventory_file"
|
|
fi
|
|
|
|
if test -n "$vault_password"; then
|
|
echo "==> Setting vault password"
|
|
echo "$vault_password" > "$vault_password_file"
|
|
options="$options --vault-password-file $vault_password_file"
|
|
fi
|
|
|
|
export ANSIBLE_HOST_KEY_CHECKING=False
|
|
export ANSIBLE_FORCE_COLOR=True
|
|
|
|
echo "[command]ansible-playbook $options $playbook"
|
|
|
|
ansible-playbook $options $playbook
|