mirror of
https://github.com/ansible/awx.git
synced 2026-02-27 15:58:45 -03:30
* Add separate Django app for configuration: awx.conf. * Migrate from existing main.TowerSettings model to conf.Setting. * Add settings wrapper to allow get/set/del via django.conf.settings. * Update existing references to tower_settings to use django.conf.settings. * Add a settings registry to allow for each Django app to register configurable settings. * Support setting validation and conversion using Django REST Framework fields. * Add /api/v1/settings/ to display a list of setting categories. * Add /api/v1/settings/<slug>/ to display all settings in a category as a single object. * Allow PUT/PATCH to update setting singleton, DELETE to reset to defaults. * Add "all" category to display all settings across categories. * Add "changed" category to display only settings configured in the database. * Support per-user settings via "user" category (/api/v1/settings/user/). * Support defaults for user settings via "user-defaults" category (/api/v1/settings/user-defaults/). * Update serializer metadata to support category, category_slug and placeholder on OPTIONS responses. * Update serializer metadata to handle child fields of a list/dict. * Hide raw data form in browsable API for OPTIONS and DELETE. * Combine existing licensing code into single "TaskEnhancer" class. * Move license helper functions from awx.api.license into awx.conf.license. * Update /api/v1/config/ to read/verify/update license using TaskEnhancer and settings wrapper. * Add support for caching settings accessed via settings wrapper. * Invalidate cached settings when Setting model changes or is deleted. * Preload all database settings into cache on first access via settings wrapper. * Add support for read-only settings than can update their value depending on other settings. * Use setting_changed signal whenever a setting changes. * Register configurable authentication, jobs, system and ui settings. * Register configurable LDAP, RADIUS and social auth settings. * Add custom fields and validators for URL, LDAP, RADIUS and social auth settings. * Rewrite existing validator for Credential ssh_private_key to support validating private keys, certs or combinations of both. * Get all unit/functional tests working with above changes. * Add "migrate_to_database_settings" command to determine settings to be migrated into the database and comment them out when set in Python settings files. * Add support for migrating license key from file to database. * Remove database-configuable settings from local_settings.py example files. * Update setup role to no longer install files for database-configurable settings. f 94ff6ee More settings work. f af4c4e0 Even more db settings stuff. f 96ea9c0 More settings, attempt at singleton serializer for settings. f 937c760 More work on singleton/category views in API, add code to comment out settings in Python files, work on command to migrate settings to database. f 425b0d3 Minor fixes for sprint demo. f ea402a4 Add support for read-only settings, cleanup license engine, get license support working with DB settings. f ec289e4 Rename migration, minor fixmes, update setup role. f 603640b Rewrite key/cert validator, finish adding social auth fields, hook up signals for setting_changed, use None to imply a setting is not set. f 67d1b5a Get functional/unit tests passing. f 2919b62 Flake8 fixes. f e62f421 Add redbaron to requirements, get file to database migration working (except for license). f c564508 Add support for migrating license file. f 982f767 Add support for regex in social map fields.
238 lines
8.0 KiB
Plaintext
238 lines
8.0 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
|
|
###############################################################################
|
|
|
|
ADMINS = (
|
|
# ('Your Name', 'your_email@domain.com'),
|
|
)
|
|
|
|
MANAGERS = ADMINS
|
|
|
|
# Database settings to use PostgreSQL for development.
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
|
'NAME': 'awx-dev',
|
|
'USER': 'awx-dev',
|
|
'PASSWORD': 'AWXsome1',
|
|
'HOST': 'localhost',
|
|
'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 is_testing(sys.argv):
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'),
|
|
'TEST': {
|
|
# Test database cannot be :memory: for celery/inventory tests.
|
|
'NAME': os.path.join(BASE_DIR, 'awx_test.sqlite3'),
|
|
},
|
|
}
|
|
}
|
|
|
|
MONGO_DB = 'system_tracking_test'
|
|
|
|
# Celery AMQP configuration.
|
|
BROKER_URL = 'redis://localhost/'
|
|
|
|
# Set True to enable additional logging from the job_event_callback plugin
|
|
JOB_CALLBACK_DEBUG = False
|
|
|
|
# Absolute filesystem path to the directory to host projects (with playbooks).
|
|
# This directory should NOT be web-accessible.
|
|
PROJECTS_ROOT = os.path.join(BASE_DIR, '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.
|
|
TIME_ZONE = 'America/New_York'
|
|
|
|
# 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']
|
|
|
|
# Define additional environment variables to be passed to subprocess started by
|
|
# the celery task.
|
|
#AWX_TASK_ENV['FOO'] = 'BAR'
|
|
|
|
# If set, use -vvv for project updates instead of -v for more output.
|
|
# PROJECT_UPDATE_VVV=True
|
|
|
|
# Set verbosity for inventory import command when running inventory updates.
|
|
# INVENTORY_UPDATE_VERBOSITY=1
|
|
|
|
###############################################################################
|
|
# EMAIL SETTINGS
|
|
###############################################################################
|
|
|
|
# Email address that error messages come from.
|
|
SERVER_EMAIL = 'root@localhost'
|
|
|
|
# The email backend to use. For possible shortcuts see django.core.mail.
|
|
# The default is to use the SMTP backend.
|
|
# Third-party backends can be specified by providing a Python path
|
|
# to a module that defines an EmailBackend class.
|
|
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
|
|
|
# Host for sending email.
|
|
EMAIL_HOST = 'localhost'
|
|
|
|
# Port for sending email.
|
|
EMAIL_PORT = 25
|
|
|
|
# Optional SMTP authentication information for EMAIL_HOST.
|
|
EMAIL_HOST_USER = ''
|
|
EMAIL_HOST_PASSWORD = ''
|
|
EMAIL_USE_TLS = False
|
|
|
|
# Default email address to use for various automated correspondence from
|
|
# the site managers.
|
|
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
|
|
|
|
# Subject-line prefix for email messages send with django.core.mail.mail_admins
|
|
# or ...mail_managers. Make sure to include the trailing space.
|
|
EMAIL_SUBJECT_PREFIX = '[AWX] '
|
|
|
|
###############################################################################
|
|
# LOGGING SETTINGS
|
|
###############################################################################
|
|
|
|
# Enable logging to syslog. Setting level to ERROR captures 500 errors,
|
|
# WARNING also logs 4xx responses.
|
|
LOGGING['handlers']['syslog'] = {
|
|
'level': 'WARNING',
|
|
'filters': [],
|
|
'class': 'logging.handlers.SysLogHandler',
|
|
'address': '/dev/log',
|
|
'facility': 'local0',
|
|
'formatter': 'simple',
|
|
}
|
|
|
|
# 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']['propagate'] = True
|
|
#LOGGING['loggers']['awx.main.signals']['propagate'] = True
|
|
#LOGGING['loggers']['awx.main.permissions']['propagate'] = True
|
|
|
|
# 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 = file(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
|
|
TEST_SSH_LOOPBACK_USERNAME = getpass.getuser()
|
|
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 = ''
|