mirror of
https://github.com/dawidd6/action-ansible-playbook.git
synced 2024-12-23 12:46:15 +00:00
Add capabilities for custom inventory and vault password
This commit is contained in:
parent
b2946c375b
commit
6d1f107198
3 changed files with 31 additions and 2 deletions
|
@ -10,8 +10,14 @@ An action that executes given Ansible playbook on selected hosts.
|
|||
with:
|
||||
playbook: deploy.yml
|
||||
key: ${{secrets.SSH_PRIVATE_KEY}}
|
||||
inventory: |
|
||||
[all]
|
||||
example.com
|
||||
|
||||
[group1]
|
||||
example.com
|
||||
vault_password: ${{secrets.VAULT_PASSWORD}}
|
||||
options: |
|
||||
--inventory hosts
|
||||
--limit dev
|
||||
--extra-vars hello=there
|
||||
--verbose
|
||||
|
|
|
@ -10,6 +10,12 @@ inputs:
|
|||
key:
|
||||
description: SSH private key used to connect to the host
|
||||
required: true
|
||||
inventory:
|
||||
description: Custom content to write into hosts
|
||||
required: false
|
||||
vault_password:
|
||||
description: The password used for decrypting vaulted files
|
||||
required: false
|
||||
options:
|
||||
description: Extra options that should be passed to ansible-playbook command
|
||||
required: false
|
||||
|
|
19
main.sh
19
main.sh
|
@ -2,8 +2,13 @@
|
|||
|
||||
set -e
|
||||
|
||||
default_inventory="hosts"
|
||||
default_vault_file=".vault_password"
|
||||
|
||||
playbook="$INPUT_PLAYBOOK"
|
||||
key="$INPUT_KEY"
|
||||
inventory="$INPUT_INVENTORY"
|
||||
vault_password="$INPUT_VAULT_PASSWORD"
|
||||
options="$INPUT_OPTIONS"
|
||||
|
||||
if test -z "$playbook"; then
|
||||
|
@ -20,10 +25,22 @@ mkdir -p "$HOME/.ssh"
|
|||
echo "$key" > "$HOME/.ssh/id_rsa"
|
||||
chmod 600 "$HOME/.ssh/id_rsa"
|
||||
|
||||
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
|
||||
|
||||
echo "$options"
|
||||
echo "$playbook"
|
||||
|
||||
export ANSIBLE_HOST_KEY_CHECKING=False
|
||||
export ANSIBLE_FORCE_COLOR=True
|
||||
|
||||
ansible-playbook $options $playbook
|
||||
ansible-playbook $options $playbook
|
||||
|
|
Loading…
Reference in a new issue