mirror of
https://github.com/ansible/awx.git
synced 2026-01-15 20:00:43 -03:30
* 100 is the default capacity for a channel. If the client doesn't read the socket fast enough, websocket messages can and will be lost. This increases the default to 10,000
251 lines
9.2 KiB
Plaintext
251 lines
9.2 KiB
Plaintext
# Copyright (c) 2015 Ansible, Inc. (formerly AnsibleWorks, Inc.)
|
|
# All Rights Reserved.
|
|
|
|
# Local Django settings for AWX project. Rename to "local_settings.py" and
|
|
# edit as needed for your development environment.
|
|
|
|
# All variables defined in awx/settings/development.py will already be loaded
|
|
# into the global namespace before this file is loaded, to allow for reading
|
|
# and updating the default settings as needed.
|
|
|
|
###############################################################################
|
|
# MISC PROJECT SETTINGS
|
|
###############################################################################
|
|
import os
|
|
import urllib.parse
|
|
import sys
|
|
from urllib import parse
|
|
|
|
# Enable the following lines and install the browser extension to use Django debug toolbar
|
|
# if your deployment method is not VMWare of Docker-for-Mac you may
|
|
# need a different IP address from request.META['REMOTE_ADDR']
|
|
# INTERNAL_IPS = ('172.19.0.1', '172.18.0.1', '192.168.100.1')
|
|
# ALLOWED_HOSTS = ['*']
|
|
|
|
# Database settings to use PostgreSQL for development.
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'awx.main.db.profiled_pg',
|
|
'NAME': 'awx-dev',
|
|
'USER': 'awx-dev',
|
|
'PASSWORD': 'AWXsome1',
|
|
'ATOMIC_REQUESTS': True,
|
|
'HOST': 'postgres',
|
|
'PORT': '',
|
|
}
|
|
}
|
|
|
|
# Use SQLite for unit tests instead of PostgreSQL. If the lines below are
|
|
# commented out, Django will create the test_awx-dev database in PostgreSQL to
|
|
# run unit tests.
|
|
if "pytest" in sys.modules:
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'),
|
|
'TEST': {
|
|
# Test database cannot be :memory: for inventory tests.
|
|
'NAME': os.path.join(BASE_DIR, 'awx_test.sqlite3'),
|
|
},
|
|
}
|
|
}
|
|
|
|
# Use Redis as the message bus for now
|
|
# Default to "just works" for single tower docker
|
|
BROKER_URL = os.environ.get('BROKER_URL', "redis://redis_1:6379")
|
|
|
|
redis_parts = parse.urlparse(BROKER_URL)
|
|
|
|
CHANNEL_LAYERS = {
|
|
"default": {
|
|
"BACKEND": "channels_redis.core.RedisChannelLayer",
|
|
"CONFIG": {
|
|
"hosts": [(redis_parts.hostname, redis_parts.port)],
|
|
"capacity": 10000,
|
|
},
|
|
},
|
|
}
|
|
|
|
# Absolute filesystem path to the directory to host projects (with playbooks).
|
|
# This directory should NOT be web-accessible.
|
|
PROJECTS_ROOT = '/var/lib/awx/projects/'
|
|
|
|
# Absolute filesystem path to the directory for job status stdout
|
|
# This directory should not be web-accessible
|
|
JOBOUTPUT_ROOT = os.path.join(BASE_DIR, 'job_status')
|
|
|
|
# The UUID of the system, for HA.
|
|
SYSTEM_UUID = '00000000-0000-0000-0000-000000000000'
|
|
|
|
# Local time zone for this installation. Choices can be found here:
|
|
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
|
|
# although not all choices may be available on all operating systems.
|
|
# On Unix systems, a value of None will cause Django to use the same
|
|
# timezone as the operating system.
|
|
# If running in a Windows environment this must be set to the same as your
|
|
# system time zone.
|
|
USE_TZ = True
|
|
TIME_ZONE = 'UTC'
|
|
|
|
# Language code for this installation. All choices can be found here:
|
|
# http://www.i18nguy.com/unicode/language-identifiers.html
|
|
LANGUAGE_CODE = 'en-us'
|
|
|
|
# SECURITY WARNING: keep the secret key used in production secret!
|
|
# Hardcoded values can leak through source control. Consider loading
|
|
# the secret key from an environment variable or a file instead.
|
|
SECRET_KEY = 'p7z7g1ql4%6+(6nlebb6hdk7sd^&fnjpal308%n%+p^_e6vo1y'
|
|
|
|
# HTTP headers and meta keys to search to determine remote host name or IP. Add
|
|
# additional items to this list, such as "HTTP_X_FORWARDED_FOR", if behind a
|
|
# reverse proxy.
|
|
REMOTE_HOST_HEADERS = ['REMOTE_ADDR', 'REMOTE_HOST']
|
|
|
|
# If Tower is behind a reverse proxy/load balancer, use this setting to
|
|
# whitelist the proxy IP addresses from which Tower should trust custom
|
|
# REMOTE_HOST_HEADERS header values
|
|
# REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', ''REMOTE_ADDR', 'REMOTE_HOST']
|
|
# PROXY_IP_WHITELIST = ['10.0.1.100', '10.0.1.101']
|
|
# If this setting is an empty list (the default), the headers specified by
|
|
# REMOTE_HOST_HEADERS will be trusted unconditionally')
|
|
PROXY_IP_WHITELIST = []
|
|
|
|
# Define additional environment variables to be passed to ansible subprocesses
|
|
#AWX_TASK_ENV['FOO'] = 'BAR'
|
|
|
|
# If set, use -vvv for project updates instead of -v for more output.
|
|
# PROJECT_UPDATE_VVV=True
|
|
|
|
###############################################################################
|
|
# LOGGING SETTINGS
|
|
###############################################################################
|
|
|
|
# Enable logging to syslog. Setting level to ERROR captures 500 errors,
|
|
# WARNING also logs 4xx responses.
|
|
|
|
LOGGING['handlers']['syslog'] = {
|
|
'level': 'WARNING',
|
|
'filters': ['require_debug_false'],
|
|
'class': 'logging.NullHandler',
|
|
'formatter': 'simple',
|
|
}
|
|
|
|
LOGGING['loggers']['django.request']['handlers'] = ['console']
|
|
LOGGING['loggers']['rest_framework.request']['handlers'] = ['console']
|
|
LOGGING['loggers']['awx']['handlers'] = ['console', 'external_logger']
|
|
LOGGING['loggers']['awx.main.commands.run_callback_receiver']['handlers'] = [] # propogates to awx
|
|
LOGGING['loggers']['awx.main.tasks']['handlers'] = ['console', 'external_logger']
|
|
LOGGING['loggers']['awx.main.scheduler']['handlers'] = ['console', 'external_logger']
|
|
LOGGING['loggers']['django_auth_ldap']['handlers'] = ['console']
|
|
LOGGING['loggers']['social']['handlers'] = ['console']
|
|
LOGGING['loggers']['system_tracking_migrations']['handlers'] = ['console']
|
|
LOGGING['loggers']['rbac_migrations']['handlers'] = ['console']
|
|
LOGGING['loggers']['awx.isolated.manager.playbooks']['handlers'] = ['console']
|
|
LOGGING['handlers']['callback_receiver'] = {'class': 'logging.NullHandler'}
|
|
LOGGING['handlers']['fact_receiver'] = {'class': 'logging.NullHandler'}
|
|
LOGGING['handlers']['task_system'] = {'class': 'logging.NullHandler'}
|
|
LOGGING['handlers']['tower_warnings'] = {'class': 'logging.NullHandler'}
|
|
LOGGING['handlers']['rbac_migrations'] = {'class': 'logging.NullHandler'}
|
|
LOGGING['handlers']['system_tracking_migrations'] = {'class': 'logging.NullHandler'}
|
|
LOGGING['handlers']['management_playbooks'] = {'class': 'logging.NullHandler'}
|
|
|
|
|
|
# Enable the following lines to also log to a file.
|
|
#LOGGING['handlers']['file'] = {
|
|
# 'class': 'logging.FileHandler',
|
|
# 'filename': os.path.join(BASE_DIR, 'awx.log'),
|
|
# 'formatter': 'simple',
|
|
#}
|
|
|
|
# Enable the following lines to turn on lots of permissions-related logging.
|
|
#LOGGING['loggers']['awx.main.access']['level'] = 'DEBUG'
|
|
#LOGGING['loggers']['awx.main.signals']['level'] = 'DEBUG'
|
|
#LOGGING['loggers']['awx.main.permissions']['level'] = 'DEBUG'
|
|
|
|
# Enable the following line to turn on database settings logging.
|
|
#LOGGING['loggers']['awx.conf']['level'] = 'DEBUG'
|
|
|
|
# Enable the following lines to turn on LDAP auth logging.
|
|
#LOGGING['loggers']['django_auth_ldap']['handlers'] = ['console']
|
|
#LOGGING['loggers']['django_auth_ldap']['level'] = 'DEBUG'
|
|
|
|
###############################################################################
|
|
# SCM TEST SETTINGS
|
|
###############################################################################
|
|
|
|
# Define these variables to enable more complete testing of project support for
|
|
# SCM updates. The test repositories listed do not have to contain any valid
|
|
# playbooks.
|
|
|
|
try:
|
|
path = os.path.expanduser(os.path.expandvars('~/.ssh/id_rsa'))
|
|
TEST_SSH_KEY_DATA = open(path, 'rb').read()
|
|
except IOError:
|
|
TEST_SSH_KEY_DATA = ''
|
|
|
|
TEST_GIT_USERNAME = ''
|
|
TEST_GIT_PASSWORD = ''
|
|
TEST_GIT_KEY_DATA = TEST_SSH_KEY_DATA
|
|
TEST_GIT_PUBLIC_HTTPS = 'https://github.com/ansible/ansible.github.com.git'
|
|
TEST_GIT_PRIVATE_HTTPS = 'https://github.com/ansible/product-docs.git'
|
|
TEST_GIT_PRIVATE_SSH = 'git@github.com:ansible/product-docs.git'
|
|
|
|
TEST_HG_USERNAME = ''
|
|
TEST_HG_PASSWORD = ''
|
|
TEST_HG_KEY_DATA = TEST_SSH_KEY_DATA
|
|
TEST_HG_PUBLIC_HTTPS = 'https://bitbucket.org/cchurch/django-hotrunner'
|
|
TEST_HG_PRIVATE_HTTPS = ''
|
|
TEST_HG_PRIVATE_SSH = ''
|
|
|
|
TEST_SVN_USERNAME = ''
|
|
TEST_SVN_PASSWORD = ''
|
|
TEST_SVN_PUBLIC_HTTPS = 'https://github.com/ansible/ansible.github.com'
|
|
TEST_SVN_PRIVATE_HTTPS = 'https://github.com/ansible/product-docs'
|
|
|
|
# To test repo access via SSH login to localhost.
|
|
import getpass
|
|
try:
|
|
TEST_SSH_LOOPBACK_USERNAME = getpass.getuser()
|
|
except KeyError:
|
|
TEST_SSH_LOOPBACK_USERNAME = 'root'
|
|
TEST_SSH_LOOPBACK_PASSWORD = ''
|
|
|
|
###############################################################################
|
|
# INVENTORY IMPORT TEST SETTINGS
|
|
###############################################################################
|
|
|
|
# Define these variables to enable more complete testing of inventory import
|
|
# from cloud providers.
|
|
|
|
# EC2 credentials
|
|
TEST_AWS_ACCESS_KEY_ID = ''
|
|
TEST_AWS_SECRET_ACCESS_KEY = ''
|
|
TEST_AWS_REGIONS = 'all'
|
|
# Check IAM STS credentials
|
|
TEST_AWS_SECURITY_TOKEN = ''
|
|
|
|
# Rackspace credentials
|
|
TEST_RACKSPACE_USERNAME = ''
|
|
TEST_RACKSPACE_API_KEY = ''
|
|
TEST_RACKSPACE_REGIONS = 'all'
|
|
|
|
# VMware credentials
|
|
TEST_VMWARE_HOST = ''
|
|
TEST_VMWARE_USER = ''
|
|
TEST_VMWARE_PASSWORD = ''
|
|
|
|
# OpenStack credentials
|
|
TEST_OPENSTACK_HOST = ''
|
|
TEST_OPENSTACK_USER = ''
|
|
TEST_OPENSTACK_PASSWORD = ''
|
|
TEST_OPENSTACK_PROJECT = ''
|
|
|
|
# Azure credentials.
|
|
TEST_AZURE_USERNAME = ''
|
|
TEST_AZURE_KEY_DATA = ''
|
|
|
|
BROADCAST_WEBSOCKETS_SECRET = '🤖starscream🤖'
|
|
BROADCAST_WEBSOCKETS_PORT = 8013
|
|
BROADCAST_WEBSOCKETS_VERIFY_CERT = False
|
|
BROADCAST_WEBSOCKETS_PROTOCOL = 'http'
|