arillso/Play Ansible Playbook
Github Action for running Ansible Playbooks with advanced configuration options.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 26, 2026
- License
- MIT
Pinned Snippet
uses: arillso/action.playbook@3fa4d0bcd270c84fbc77ab3df8f54dafd118e9f2 # 0.5.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| execution_timeout | Timeout in minutes for the playbook execution (1-1440, default: 30). | no | 30 |
| retries | Number of times to retry on failure (0-100, 0 = no retries, default: 0). | no | 0 |
| retry_delay | Delay in seconds between retries (0-3600, default: 30). | no | 30 |
| galaxy_file | Name of the galaxy file in your workspace. | no | — |
| galaxy_force | Forces the reinstallation of roles or collections from the Galaxy file. | no | — |
| galaxy_api_key | Sets the API key used for authenticating to Ansible Galaxy. | no | — |
| galaxy_api_server_url | Defines the URL of the Ansible Galaxy API server to interact with. | no | — |
| galaxy_collections_path | Sets the path to the directory where Galaxy collections are stored. | no | — |
| galaxy_disable_gpg_verify | Disables GPG signature verification for Ansible Galaxy operations. | no | — |
| galaxy_force_with_deps | Forces the installation of collections with their dependencies from Galaxy. | no | — |
| galaxy_ignore_certs | Ignores SSL certificate validation for Ansible Galaxy requests. | no | — |
| galaxy_ignore_signature_status_codes | Lists HTTP status codes to ignore during Galaxy signature validation. | no | — |
| galaxy_keyring | Specifies the path to the GPG keyring used with Ansible Galaxy. | no | — |
| galaxy_offline | Enables offline mode, preventing any requests to Ansible Galaxy. | no | — |
| galaxy_pre | Allows the installation of pre-release versions from Ansible Galaxy. | no | — |
| galaxy_required_valid_signature_count | Sets the required number of valid GPG signatures for Galaxy content. | no | — |
| galaxy_requirements_file | Defines the path to the Ansible Galaxy requirements file. | no | — |
| galaxy_signature | Specifies a specific GPG signature to verify for Galaxy content. | no | — |
| galaxy_timeout | Sets the timeout in seconds for Ansible Galaxy operations. | no | — |
| galaxy_upgrade | Enables automatic upgrading of Galaxy collections to the latest version. | no | — |
| galaxy_no_deps | Disables automatic resolution of dependencies in Ansible Galaxy. | no | — |
| inventory | One or more inventory host files. Supports comma-separated ('inv1.yml,inv2.yml') or multiline YAML syntax. | yes | — |
| playbook | One or more playbooks to apply. Supports comma-separated ('play1.yml,play2.yml') or multiline YAML syntax. | yes | — |
| limit | Limits the playbook execution to a specific group of hosts. | no | — |
| skip_tags | Only run plays and tasks whose tags do not match these values. | no | — |
| start_at_task | Start the playbook at the task matching this name. | no | — |
| tags | Executes only tasks and plays with specified tags. | no | — |
| extra_vars | Additional variables in key=value format. Supports comma-separated or multiline YAML syntax for multiple values. | no | — |
| module_path | Prepend directories to the module library path. Supports comma-separated or multiline YAML syntax for multiple paths. | no | — |
| lint | Run ansible-lint on playbooks before execution. | no | false |
| output_file | Save Ansible stdout to a file (useful for capturing diff output for PR comments). | no | — |
| check | Executes a dry run, showing what changes would be made without making them. | no | — |
| diff | Shows the differences in files and templates when changing them. | no | — |
| dry_run | Enables both check and diff mode for a dry run without making changes. | no | false |
| flush_cache | Clears the fact cache for every host in the inventory. | no | — |
| force_handlers | Runs all handlers even if a task fails. | no | — |
| list_hosts | Outputs a list of matching hosts. | no | — |
| list_tags | List all available tags. | no | — |
| list_tasks | List all tasks that would be executed. | no | — |
| syntax_check | Performs a syntax check on the playbook, without executing it. | no | — |
| forks | Defines the number of parallel processes to use during playbook execution (1-1000, default: 5). | no | — |
| vault_id | Specifies the identity to use when accessing an Ansible Vault. | no | — |
| vault_password | Sets the password to use for decrypting an Ansible Vault. | no | — |
| verbose | Sets the verbosity level, ranging from 0 (minimal output) to 4 (maximum verbosity). | no | — |
| private_key | Specifies 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_passphrase | Passphrase 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_keys | Additional SSH private keys to load into ssh-agent. Supports multiline YAML syntax for multiple keys. Requires private_key to be set. | no | — |
| user | Defines the username for making connections. | no | — |
| connection | Sets the type of connection to use (e.g., SSH). | no | — |
| timeout | Overrides the default connection timeout in seconds. | no | — |
| ssh_common_args | Specifies common arguments to pass to all SSH-based connection methods (SSH, SCP, SFTP). | no | — |
| sftp_extra_args | Provides extra arguments to pass only to SFTP. | no | — |
| scp_extra_args | Provides extra arguments to pass only to SCP. | no | — |
| ssh_extra_args | Provides extra arguments to pass only to SSH. | no | — |
| known_hosts | SSH known hosts entries for host key verification. Supports multiline YAML syntax. | no | — |
| become | Enables privilege escalation, allowing operations to run as another user. | no | — |
| become_method | Specifies the method to use for privilege escalation (e.g., sudo). | no | — |
| become_user | Sets the user to impersonate when using privilege escalation. | no | — |
| config_file | Path to an ansible.cfg configuration file to use (sets ANSIBLE_CONFIG). | no | — |
| no_color | Disables colorized output. | no | — |
| output_callback | Sets the stdout callback plugin for Ansible output (e.g. 'yaml', 'json', 'minimal'). | no | — |
| callbacks_enabled | Comma-separated list of enabled callback plugins (e.g. 'profile_tasks,timer'). | no | — |
| strategy_plugin | Specifies the strategy plugin to use (e.g. 'linear', 'free', 'mitogen_linear'). | no | — |
| gather_subset | Limits the scope of gathered facts (e.g. '!all,!min,network'). | no | — |
| gather_timeout | Timeout in seconds for gathering facts (0-3600, 0 = ansible default). | no | — |
| fact_path | Path to local fact files loaded as host facts. | no | — |
| fact_caching | Caching method to use for facts (e.g. 'jsonfile', 'redis', 'memory'). | no | — |
| fact_caching_timeout | Timeout in seconds for the fact cache (0 = no expiry). | no | — |
| poll_interval | Interval in seconds for polling async tasks (0-3600, 0 = ansible default). | no | — |
| max_fail_percentage | Maximum percentage of hosts that can fail before the playbook aborts (0-100). | no | — |
| any_errors_fatal | Treats any task error as fatal, aborting the whole play. | no | — |
| ssh_transfer_method | Method for file transfer over SSH (e.g. 'scp' or 'sftp'). | no | — |
| vault_password_file | Path to a file containing the vault password (alternative to vault_password). | no | — |
| private_key_file | Path to a file containing the SSH private key (alternative to private_key). | no | — |
| temp_dir | Directory for Ansible temporary files. | no | — |
Outputs
| name | description |
|---|---|
| status | Execution status: 'success' or 'failed' |
| exit_code | Ansible exit code (0=success, 2=host failed, 4=unreachable) |