Skip to main content
AWX integrates with source control management (SCM) systems to manage project content including playbooks, roles, and inventory files. Projects in AWX point to SCM repositories and can be configured to update automatically.

Supported SCM Types

AWX supports the following source control systems:
  • Manual - Local project files on the AWX server
  • Git - Git repositories (most common)
  • Subversion (SVN) - SVN repositories
  • Red Hat Insights - Red Hat Insights integration
  • Remote Archive - Remote tar, zip, or other archive files

Git Integration

Basic Configuration

To configure a Git project:

Git Credentials

For private repositories, create a Source Control credential:

Advanced Git Options

Branch/Tag/Commit

Specify a specific version to checkout:

Refspec

For advanced Git operations, specify a custom refspec:
This allows you to fetch and use pull request branches.

Project Options

  • Clean - Discard local changes before updating (equivalent to git clean -fdx)
  • Delete on Update - Delete the project directory before syncing
  • Track Submodules - Update Git submodules on each project update
  • Update Revision on Launch - Automatically update project before running jobs
  • Allow Branch Override - Let job templates override the project branch

SSH Key Authentication

For Git over SSH, configure your credential with an SSH private key:

HTTPS with Personal Access Token

For GitHub, GitLab, or other platforms using tokens:

Subversion (SVN) Integration

Configuration

SVN Credentials

Red Hat Insights Integration

Integrate with Red Hat Insights for vulnerability and compliance scanning:
The Insights credential requires:

Remote Archive Integration

Pull project content from remote archives:
Supported formats:
  • .tar.gz / .tgz
  • .tar.bz2
  • .zip

SCM Inventory Sources

Use project content as inventory sources:

Supported Inventory Formats

  • INI format - Traditional Ansible inventory
  • YAML format - Modern YAML-based inventory
  • Dynamic scripts - Executable inventory scripts
  • Inventory plugins - Ansible inventory plugin YAML files

Example Project Structure

Project Updates

Manual Updates

Update a project via the UI or API:

Automatic Updates

Configure projects to update automatically:
  • Update on Launch - Update before job template runs
  • Update on Project Commit - Use webhooks to trigger updates (GitHub, GitLab)
  • Scheduled Updates - Set up scheduled project syncs

Webhook Configuration

Enable webhook notifications for automatic project updates:
  1. In AWX, enable webhooks on the project
  2. Copy the webhook URL and key
  3. Configure in your SCM platform:
GitHub:
GitLab:

Troubleshooting

Common Issues

SSH Key Authentication Fails:
  • Verify the SSH key format (OpenSSH, not PEM)
  • Check key permissions on the Git server
  • Ensure the key is added to authorized_keys or deployment keys
Git Clone Fails with SSL Error:
  • Verify SSL certificate on Git server
  • Consider using “Verify SSL” option in project settings
Submodules Not Updating:
  • Enable “Track Submodules” in project options
  • Verify submodule URLs are accessible with provided credentials
Branch Override Not Working:
  • Ensure “Allow Branch Override” is enabled on project
  • Verify the prompt setting is enabled on job template

Debug Project Updates

View project update logs:

Best Practices

Repository Organization

  • Keep playbooks, roles, and inventory in a clear structure
  • Use collections/requirements.yml for Ansible collections
  • Store credentials in AWX, not in the repository
  • Use .gitignore to exclude sensitive files

Branch Strategy

  • Use main or master for production
  • Create feature branches for development
  • Use tags for releases
  • Enable branch override for testing

Performance

  • Use shallow clones for large repositories (Git default)
  • Enable caching when possible
  • Schedule updates during low-usage periods
  • Use webhooks instead of polling

Security

  • Use SSH keys or personal access tokens (not passwords)
  • Rotate credentials regularly
  • Limit credential access via RBAC
  • Enable branch protection in SCM platform
  • Review commit signatures and verification

API Examples

Create Git Project

Update Project

See Also