1
0
Fork 0
mirror of https://github.com/dawidd6/action-ansible-playbook.git synced 2024-11-22 15:32:18 +00:00
action-ansible-playbook/main.sh

57 lines
1.3 KiB
Bash
Raw Normal View History

2020-03-21 19:01:42 +00:00
#!/bin/sh
2020-03-21 16:06:40 +00:00
set -e
inventory_file="hosts"
vault_password_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"
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 "::error::You need to specify 'playbook' input (Ansible playbook filepath)"
2020-03-21 16:06:40 +00:00
exit 1
fi
2020-03-21 19:54:44 +00:00
if test -z "$key"; then
echo "::error::You need to specify 'key' input (SSH private key)"
2020-03-21 19:54:44 +00:00
exit 1
2020-03-21 16:06:40 +00:00
fi
2020-03-21 19:54:44 +00:00
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
2020-04-06 22:01:30 +00:00
if test -n "$options"; then
2020-04-06 22:06:51 +00:00
options="$(echo "$options" | tr '\n' ' ' | xargs)"
2020-04-06 22:01:30 +00:00
fi
if test -n "$inventory"; then
2020-04-06 22:12:40 +00:00
echo "==> Setting inventory"
echo "$inventory" > "$inventory_file"
cat $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
2020-03-21 16:06:40 +00:00
export ANSIBLE_HOST_KEY_CHECKING=False
export ANSIBLE_FORCE_COLOR=True
2020-04-06 22:01:30 +00:00
echo "[command]ansible-playbook $options $playbook"
ansible-playbook $options $playbook