Skip to main content

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_KEY
Purpose: Encrypts sensitive data in the database (credentials, tokens, etc.)
Changing SECRET_KEY requires re-encrypting all secrets in the database. Use the regenerate_secret_key management command.

ALLOWED_HOSTS

Default: []
Description: List of valid hostnames/domains for AWX

TIME_ZONE

Default: 'UTC'
Description: System timezone

Session Settings

Default: 1800 (30 minutes)
Description: Session lifetime in seconds

SESSIONS_PER_USER

Default: -1 (unlimited)
Description: Maximum concurrent sessions per user
Default: True
Description: Send session cookies only over HTTPS

Database Settings

PostgreSQL Configuration

Connection Pool Settings

Job Settings

JOB_EVENT_WORKERS

Default: 4
Description: Number of processes for processing job events

JOB_EVENT_BUFFER_SECONDS

Default: 1
Description: Time to buffer events before database write

SCHEDULE_MAX_JOBS

Default: 10
Description: Maximum pending jobs from a single schedule

Task Manager Settings

START_TASK_LIMIT

Default: 100
Description: 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 jobs

CONTROL_PLANE_EXECUTION_ENVIRONMENT

Description: Execution environment for project updates

Container Group Settings

AWX_CONTAINER_GROUP_K8S_API_TIMEOUT

Default: 10
Description: 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:
This operation is irreversible and affects all encrypted data. Backup your database first.

Database Management

Troubleshooting

Setting Not Taking Effect

  1. Check if setting is file-defined (read-only):
  2. Verify setting category:
  3. Clear cache and restart services:

Database Connection Issues

Permission Errors