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