2013-09-12 23:50:39 +04:00
# AWX settings file
2013-09-10 01:20:43 +04:00
###############################################################################
# MISC PROJECT SETTINGS
###############################################################################
2013-06-15 12:10:11 +04:00
ADMINS = (
#('Joe Admin', 'joeadmin@example.com'),
)
DATABASES = {
' default ' : {
' ENGINE ' : ' django.db.backends.postgresql_psycopg2 ' ,
2013-06-23 21:21:02 +04:00
' NAME ' : ' awx ' ,
' USER ' : ' awx ' ,
2013-06-15 12:10:11 +04:00
' PASSWORD ' : ' AWsecret ' ,
' HOST ' : ' ' ,
' PORT ' : ' ' ,
}
}
2013-06-28 14:07:58 +04:00
# Use SQLite for unit tests instead of PostgreSQL.
if len ( sys . argv ) > = 2 and sys . argv [ 1 ] == ' test ' :
DATABASES = {
' default ' : {
' ENGINE ' : ' django.db.backends.sqlite3 ' ,
' NAME ' : ' var/lib/awx/awx.sqlite3 ' ,
# Test database cannot be :memory: for celery/inventory tests.
' TEST_NAME ' : ' /var/lib/awx/awx_test.sqlite3 ' ,
}
}
2013-06-23 21:21:02 +04:00
STATIC_ROOT = ' /var/lib/awx/public/static '
2013-06-15 12:10:11 +04:00
2013-06-23 21:21:02 +04:00
PROJECTS_ROOT = ' /var/lib/awx/projects '
2013-06-15 12:10:11 +04:00
2013-11-21 22:53:59 +04:00
JOBOUTPUT_ROOT = ' /var/lib/awx/job_status '
2013-06-23 21:21:02 +04:00
SECRET_KEY = file ( ' /etc/awx/SECRET_KEY ' , ' rb ' ) . read ( ) . strip ( )
2013-06-15 12:10:11 +04:00
ALLOWED_HOSTS = [ ' * ' ]
2013-07-16 09:39:17 +04:00
AWX_TASK_ENV [ ' HOME ' ] = ' /var/lib/awx '
AWX_TASK_ENV [ ' USER ' ] = ' awx '
2013-09-10 01:20:43 +04:00
###############################################################################
# EMAIL SETTINGS
###############################################################################
2013-06-15 12:10:11 +04:00
SERVER_EMAIL = ' root@localhost '
DEFAULT_FROM_EMAIL = ' webmaster@localhost '
2013-06-23 23:40:07 +04:00
EMAIL_SUBJECT_PREFIX = ' [AnsibleWorks] '
2013-06-15 12:10:11 +04:00
EMAIL_HOST = ' localhost '
EMAIL_PORT = 25
EMAIL_HOST_USER = ' '
EMAIL_HOST_PASSWORD = ' '
EMAIL_USE_TLS = False
2013-09-08 00:14:43 +04:00
2013-09-10 01:20:43 +04:00
###############################################################################
# LOGGING SETTINGS
###############################################################################
LOGGING [ ' handlers ' ] [ ' syslog ' ] = {
# ERROR captures 500 errors, WARNING also logs 4xx responses.
' level ' : ' ERROR ' ,
' filters ' : [ ' require_debug_false ' ] ,
' class ' : ' logging.handlers.SysLogHandler ' ,
' address ' : ' /dev/log ' ,
' facility ' : ' local0 ' ,
' formatter ' : ' simple ' ,
}
###############################################################################
# LDAP AUTHENTICATION SETTINGS
###############################################################################
2013-09-12 23:08:46 +04:00
# AnsibleWorks AWX can be configured to centrally use LDAP as a source for
# authentication information. When so configured, a user who logs in with
# a LDAP username and password will automatically get an AWX account created
# for them, and they can be automatically placed into multiple organizations
# as either regular users or organization administrators. If users are created
# via an LDAP login, by default they cannot change their username, firstname,
# lastname, or set a local password for themselves. This is also tunable
# to restrict editing of other field names.
# For more information about these various settings, advanced users may refer
# to django-auth-ldap docs, though this should not be neccessary for most
# users: http://pythonhosted.org/django-auth-ldap/authentication.html
2013-09-08 00:14:43 +04:00
2013-09-10 01:20:43 +04:00
# LDAP server URI, such as "ldap://ldap.example.com:389" (non-SSL) or
2013-09-12 23:08:46 +04:00
# "ldaps://ldap.example.com:636" (SSL). LDAP authentication is disabled if this
2013-09-10 01:20:43 +04:00
# parameter is empty.
2013-09-12 23:08:46 +04:00
2013-09-08 00:14:43 +04:00
AUTH_LDAP_SERVER_URI = ' '
2013-09-10 01:20:43 +04:00
2013-09-12 23:08:46 +04:00
# DN (Distinguished Name) of user to bind for all search queries. Normally in the format
2013-09-10 01:20:43 +04:00
# "CN=Some User,OU=Users,DC=example,DC=com" but may also be specified as
2013-09-12 23:08:46 +04:00
# "DOMAIN\username" for Active Directory. This is the system user account
# we will use to login to query LDAP for other user information.
2013-09-08 00:14:43 +04:00
AUTH_LDAP_BIND_DN = ' '
2013-09-10 01:20:43 +04:00
# Password using to bind above user account.
2013-09-12 23:08:46 +04:00
2013-09-08 00:14:43 +04:00
AUTH_LDAP_BIND_PASSWORD = ' '
2013-09-10 01:20:43 +04:00
2013-09-12 23:08:46 +04:00
# Whether to enable TLS when the LDAP connection is not using SSL.
2013-09-08 00:14:43 +04:00
AUTH_LDAP_START_TLS = False
2013-09-10 01:20:43 +04:00
# Imports needed for remaining LDAP configuration.
2013-09-12 23:08:46 +04:00
# do not alter this section
2013-09-10 01:20:43 +04:00
import ldap
from django_auth_ldap . config import LDAPSearch , LDAPSearchUnion
from django_auth_ldap . config import ActiveDirectoryGroupType
2013-09-08 00:14:43 +04:00
2013-09-12 23:08:46 +04:00
# LDAP search query to find users. Any user that matches the pattern
# below will be able to login to AWX. The user should also be mapped
# into an AWX organization (as defined later on in this file). If multiple
# search queries need to be supported use of "LDAPUnion" is possible. See
# python-ldap documentation as linked at the top of this section.
2013-09-10 01:20:43 +04:00
AUTH_LDAP_USER_SEARCH = LDAPSearch (
' OU=Users,DC=example,DC=com ' , # Base DN
ldap . SCOPE_SUBTREE , # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE
' (sAMAccountName= %(user)s ) ' , # Query
)
2013-09-12 23:08:46 +04:00
# Alternative to user search, if user DNs are all of the same format. This will be
# more efficient for lookups than the above system if it is usable in your organizational
# environment. If this setting has a value it will be used instead of AUTH_LDAP_USER_SEARCH
# above.
2013-09-10 01:20:43 +04:00
#AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,OU=Users,DC=example,DC=com'
2013-09-12 23:08:46 +04:00
# Mapping of LDAP user schema to AWX API user atrributes (key is user attribute name, value is LDAP
# attribute name). The default setting in this configuration file is valid for ActiveDirectory but
# users with other LDAP configurations may need to change the values (not the keys) of the dictionary/hash-table
# below.
2013-09-10 01:20:43 +04:00
AUTH_LDAP_USER_ATTR_MAP = {
' first_name ' : ' givenName ' ,
' last_name ' : ' sn ' ,
' email ' : ' mail ' ,
}
2013-09-12 23:08:46 +04:00
# Users in AWX are mapped to organizations based on their membership in LDAP groups. The following setting defines
# the LDAP search query to find groups. Note that this, unlike the user search above, does not support LDAPSearchUnion.
2013-09-10 01:20:43 +04:00
AUTH_LDAP_GROUP_SEARCH = LDAPSearch (
' DC=example,DC=com ' , # Base DN
ldap . SCOPE_SUBTREE , # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE
' (objectClass=group) ' , # Query
)
2013-09-12 23:08:46 +04:00
# The group type import may need to be changed based on the type of the LDAP server.
# Values are listed at: http://pythonhosted.org/django-auth-ldap/groups.html#types-of-groups
2013-09-10 01:20:43 +04:00
AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType ( )
# Group DN required to login. If specified, user must be a member of this
2013-09-12 23:08:46 +04:00
# group to login via LDAP. If not set, everyone in LDAP that matches the
# user search defined above will be able to login via AWX. Only one
# require group is supported.
2013-09-10 12:40:33 +04:00
#AUTH_LDAP_REQUIRE_GROUP = ''
2013-09-10 01:20:43 +04:00
# Group DN denied from login. If specified, user will not be allowed to login
2013-09-12 23:08:46 +04:00
# if a member of this group. Only one deny group is supported.
2013-09-10 12:40:33 +04:00
#AUTH_LDAP_DENY_GROUP = ''
2013-09-10 01:20:43 +04:00
# User profile flags updated from group membership (key is user attribute name,
2013-09-12 23:08:46 +04:00
# value is group DN). These are boolean fields that are matched based on
# whether the user is a member of the given group. So far only is_superuser
# is settable via this method. This flag is set both true and false at login
# time based on current LDAP settings.
2013-09-10 01:20:43 +04:00
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
#'is_superuser': 'CN=Domain Admins,CN=Users,DC=example,DC=com',
}
2013-09-12 23:08:46 +04:00
# Mapping between organization admins/users and LDAP groups. This controls what
# users are placed into what AWX organizations relative to their LDAP group
# memberships. Keys are organization names. Organizations will be created if not present.
# Values are dictionaries defining the options for each organization's membership. For each organization
# it is possible to specify what groups are automatically users of the organization and also what
# groups can administer the organization.
#
2013-09-10 01:20:43 +04:00
# - admins: None, True/False, string or list/tuple of strings.
2013-09-12 23:08:46 +04:00
# If None, organization admins will not be updated based on LDAP values.
# If True, all users in LDAP will automatically be added as admins of the organization.
# If False, no LDAP users will be automatically added as admins of the organiation.
# If a string or list of strings, specifies the group DN(s) that will be added of the organization if they match
# any of the specified groups.
# - remove_admins: True/False. Defaults to False.
# If True, a user who is not an member of the given groups will be removed from the organization's administrative list.
2013-09-10 01:20:43 +04:00
# - users: None, True/False, string or list/tuple of strings. Same rules apply
# as for admins.
2013-09-12 23:08:46 +04:00
# - remove_users: True/False. Defaults to False. Same rules as apply for remove_admins
2013-09-10 01:20:43 +04:00
AUTH_LDAP_ORGANIZATION_MAP = {
#'Test Org': {
# 'admins': 'CN=Domain Admins,CN=Users,DC=example,DC=com',
# 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'],
2013-09-12 23:08:46 +04:00
# 'remove_users' : False,
# 'remove_admins' : False,
2013-09-10 01:20:43 +04:00
#},
#'Test Org 2': {
# 'admins': ['CN=Administrators,CN=Builtin,DC=example,DC=com'],
# 'users': True,
2013-09-12 23:08:46 +04:00
# 'remove_users' : False,
# 'remove_admins' : False,
2013-09-10 01:20:43 +04:00
#},
}