Overview
AWX provides extensive configuration options through settings files, environment variables, and the REST API. Configuration settings control system behavior, authentication, logging, capacity, and more.Configuration Methods
Database Settings
AWX stores most configuration settings in the database, allowing runtime changes without restarts. Access settings via the REST API:File-Based Settings
Settings defined in Python files take precedence over database settings. File-based settings are marked as read-only in the API. Location:/etc/tower/conf.d/*.py
Example configuration file:
Environment Variables
Many settings can be configured via environment variables:Key Configuration Settings
System Settings
SECRET_KEY
Location:/etc/tower/SECRET_KEYPurpose: Encrypts sensitive data in the database (credentials, tokens, etc.)
ALLOWED_HOSTS
Default:[]Description: List of valid hostnames/domains for AWX
TIME_ZONE
Default:'UTC'Description: System timezone
Session Settings
SESSION_COOKIE_AGE
Default:1800 (30 minutes)Description: Session lifetime in seconds
SESSIONS_PER_USER
Default:-1 (unlimited)Description: Maximum concurrent sessions per user
SESSION_COOKIE_SECURE
Default:TrueDescription: Send session cookies only over HTTPS
Database Settings
PostgreSQL Configuration
Connection Pool Settings
Job Settings
JOB_EVENT_WORKERS
Default:4Description: Number of processes for processing job events
JOB_EVENT_BUFFER_SECONDS
Default:1Description: Time to buffer events before database write
SCHEDULE_MAX_JOBS
Default:10Description: Maximum pending jobs from a single schedule
Task Manager Settings
START_TASK_LIMIT
Default:100Description: Maximum jobs to start per task manager cycle
TASK_MANAGER_TIMEOUT
Default:300 (5 minutes)Description: Task manager timeout in seconds
Logging Settings
LOG_ROOT
Default:/var/log/tower/Description: Directory for AWX log files
Logging Configuration
Proxy and Network Settings
PROXY_IP_ALLOWED_LIST
Default:[]Description: Trusted proxy IPs for X-Forwarded-For headers
CSRF_TRUSTED_ORIGINS
Default:[]Description: Trusted origins for CSRF protection
Execution Environment Settings
GLOBAL_JOB_EXECUTION_ENVIRONMENTS
Description: Default execution environments for jobsCONTROL_PLANE_EXECUTION_ENVIRONMENT
Description: Execution environment for project updatesContainer Group Settings
AWX_CONTAINER_GROUP_K8S_API_TIMEOUT
Default:10Description: Kubernetes API timeout in seconds
AWX_CONTAINER_GROUP_POD_PENDING_TIMEOUT
Default:"2h"Description: Maximum time for pod to enter running state
Configuration Best Practices
1. Use File-Based Settings for Critical Config
Store infrastructure settings in files to prevent accidental changes:2. Environment-Specific Configuration
Organize settings by environment:3. Secrets Management
- Never commit secrets to version control
- Use environment variables for sensitive data
- Rotate SECRET_KEY regularly
- Use external secret management (Vault, AWS Secrets Manager)
4. Configuration Version Control
Track non-sensitive configuration:5. Validate Configuration Changes
Test settings before applying:Management Commands
View Current Settings
Regenerate Secret Key
Re-encrypt all database secrets with a new key:Database Management
Troubleshooting
Setting Not Taking Effect
-
Check if setting is file-defined (read-only):
-
Verify setting category:
-
Clear cache and restart services:
Database Connection Issues
Permission Errors
Related Resources
- Capacity Planning - Configure instance capacity
- Security Configuration - Security hardening
- Metrics Configuration - Monitoring setup
- Backup and Restore - Data protection