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.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ansible/awx/llms.txt
Use this file to discover all available pages before exploring further.
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: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:Remote Archive Integration
Pull project content from remote archives:.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:- In AWX, enable webhooks on the project
- Copy the webhook URL and key
- Configure in your SCM platform:
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
- Verify SSL certificate on Git server
- Consider using “Verify SSL” option in project settings
- Enable “Track Submodules” in project options
- Verify submodule URLs are accessible with provided credentials
- 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.ymlfor Ansible collections - Store credentials in AWX, not in the repository
- Use
.gitignoreto exclude sensitive files
Branch Strategy
- Use
mainormasterfor 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