arillso/Play Ansible Playbook

Github Action for running Ansible Playbooks with advanced configuration options.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 26, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: arillso/action.playbook@3fa4d0bcd270c84fbc77ab3df8f54dafd118e9f2 # 0.5.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
execution_timeoutTimeout in minutes for the playbook execution (1-1440, default: 30).no30
retriesNumber of times to retry on failure (0-100, 0 = no retries, default: 0).no0
retry_delayDelay in seconds between retries (0-3600, default: 30).no30
galaxy_fileName of the galaxy file in your workspace.no
galaxy_forceForces the reinstallation of roles or collections from the Galaxy file.no
galaxy_api_keySets the API key used for authenticating to Ansible Galaxy.no
galaxy_api_server_urlDefines the URL of the Ansible Galaxy API server to interact with.no
galaxy_collections_pathSets the path to the directory where Galaxy collections are stored.no
galaxy_disable_gpg_verifyDisables GPG signature verification for Ansible Galaxy operations.no
galaxy_force_with_depsForces the installation of collections with their dependencies from Galaxy.no
galaxy_ignore_certsIgnores SSL certificate validation for Ansible Galaxy requests.no
galaxy_ignore_signature_status_codesLists HTTP status codes to ignore during Galaxy signature validation.no
galaxy_keyringSpecifies the path to the GPG keyring used with Ansible Galaxy.no
galaxy_offlineEnables offline mode, preventing any requests to Ansible Galaxy.no
galaxy_preAllows the installation of pre-release versions from Ansible Galaxy.no
galaxy_required_valid_signature_countSets the required number of valid GPG signatures for Galaxy content.no
galaxy_requirements_fileDefines the path to the Ansible Galaxy requirements file.no
galaxy_signatureSpecifies a specific GPG signature to verify for Galaxy content.no
galaxy_timeoutSets the timeout in seconds for Ansible Galaxy operations.no
galaxy_upgradeEnables automatic upgrading of Galaxy collections to the latest version.no
galaxy_no_depsDisables automatic resolution of dependencies in Ansible Galaxy.no
inventoryOne or more inventory host files. Supports comma-separated ('inv1.yml,inv2.yml') or multiline YAML syntax.yes
playbookOne or more playbooks to apply. Supports comma-separated ('play1.yml,play2.yml') or multiline YAML syntax.yes
limitLimits the playbook execution to a specific group of hosts.no
skip_tagsOnly run plays and tasks whose tags do not match these values.no
start_at_taskStart the playbook at the task matching this name.no
tagsExecutes only tasks and plays with specified tags.no
extra_varsAdditional variables in key=value format. Supports comma-separated or multiline YAML syntax for multiple values.no
module_pathPrepend directories to the module library path. Supports comma-separated or multiline YAML syntax for multiple paths.no
lintRun ansible-lint on playbooks before execution.nofalse
output_fileSave Ansible stdout to a file (useful for capturing diff output for PR comments).no
checkExecutes a dry run, showing what changes would be made without making them.no
diffShows the differences in files and templates when changing them.no
dry_runEnables both check and diff mode for a dry run without making changes.nofalse
flush_cacheClears the fact cache for every host in the inventory.no
force_handlersRuns all handlers even if a task fails.no
list_hostsOutputs a list of matching hosts.no
list_tagsList all available tags.no
list_tasksList all tasks that would be executed.no
syntax_checkPerforms a syntax check on the playbook, without executing it.no
forksDefines the number of parallel processes to use during playbook execution (1-1000, default: 5).no
vault_idSpecifies the identity to use when accessing an Ansible Vault.no
vault_passwordSets the password to use for decrypting an Ansible Vault.no
verboseSets the verbosity level, ranging from 0 (minimal output) to 4 (maximum verbosity).no
private_keySpecifies the SSH private key content for connections. The key is loaded into ssh-agent, making it available to ProxyCommand and bastion host connections. Should be stored in a GitHub Secret.no
private_key_passphrasePassphrase for the SSH private key. If provided, the passphrase is used to unlock the key when adding it to ssh-agent. Should be stored in a GitHub Secret.no
additional_private_keysAdditional SSH private keys to load into ssh-agent. Supports multiline YAML syntax for multiple keys. Requires private_key to be set.no
userDefines the username for making connections.no
connectionSets the type of connection to use (e.g., SSH).no
timeoutOverrides the default connection timeout in seconds.no
ssh_common_argsSpecifies common arguments to pass to all SSH-based connection methods (SSH, SCP, SFTP).no
sftp_extra_argsProvides extra arguments to pass only to SFTP.no
scp_extra_argsProvides extra arguments to pass only to SCP.no
ssh_extra_argsProvides extra arguments to pass only to SSH.no
known_hostsSSH known hosts entries for host key verification. Supports multiline YAML syntax.no
becomeEnables privilege escalation, allowing operations to run as another user.no
become_methodSpecifies the method to use for privilege escalation (e.g., sudo).no
become_userSets the user to impersonate when using privilege escalation.no
config_filePath to an ansible.cfg configuration file to use (sets ANSIBLE_CONFIG).no
no_colorDisables colorized output.no
output_callbackSets the stdout callback plugin for Ansible output (e.g. 'yaml', 'json', 'minimal').no
callbacks_enabledComma-separated list of enabled callback plugins (e.g. 'profile_tasks,timer').no
strategy_pluginSpecifies the strategy plugin to use (e.g. 'linear', 'free', 'mitogen_linear').no
gather_subsetLimits the scope of gathered facts (e.g. '!all,!min,network').no
gather_timeoutTimeout in seconds for gathering facts (0-3600, 0 = ansible default).no
fact_pathPath to local fact files loaded as host facts.no
fact_cachingCaching method to use for facts (e.g. 'jsonfile', 'redis', 'memory').no
fact_caching_timeoutTimeout in seconds for the fact cache (0 = no expiry).no
poll_intervalInterval in seconds for polling async tasks (0-3600, 0 = ansible default).no
max_fail_percentageMaximum percentage of hosts that can fail before the playbook aborts (0-100).no
any_errors_fatalTreats any task error as fatal, aborting the whole play.no
ssh_transfer_methodMethod for file transfer over SSH (e.g. 'scp' or 'sftp').no
vault_password_filePath to a file containing the vault password (alternative to vault_password).no
private_key_filePath to a file containing the SSH private key (alternative to private_key).no
temp_dirDirectory for Ansible temporary files.no
namedescription
statusExecution status: 'success' or 'failed'
exit_codeAnsible exit code (0=success, 2=host failed, 4=unreachable)