mirror of
https://github.com/ansible/awx.git
synced 2024-11-02 09:51:09 +03:00
214 lines
8.3 KiB
Python
214 lines
8.3 KiB
Python
###############################################################################
|
|
# MISC PROJECT SETTINGS
|
|
###############################################################################
|
|
|
|
ADMINS = (
|
|
#('Joe Admin', 'joeadmin@example.com'),
|
|
)
|
|
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
|
'NAME': 'awx',
|
|
'USER': 'awx',
|
|
'PASSWORD': 'AWsecret',
|
|
'HOST': '',
|
|
'PORT': '',
|
|
}
|
|
}
|
|
|
|
# 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',
|
|
}
|
|
}
|
|
|
|
STATIC_ROOT = '/var/lib/awx/public/static'
|
|
|
|
PROJECTS_ROOT = '/var/lib/awx/projects'
|
|
|
|
SECRET_KEY = file('/etc/awx/SECRET_KEY', 'rb').read().strip()
|
|
|
|
ALLOWED_HOSTS = ['*']
|
|
|
|
AWX_TASK_ENV['HOME'] = '/var/lib/awx'
|
|
AWX_TASK_ENV['USER'] = 'awx'
|
|
|
|
###############################################################################
|
|
# EMAIL SETTINGS
|
|
###############################################################################
|
|
|
|
SERVER_EMAIL = 'root@localhost'
|
|
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
|
|
EMAIL_SUBJECT_PREFIX = '[AnsibleWorks] '
|
|
|
|
EMAIL_HOST = 'localhost'
|
|
EMAIL_PORT = 25
|
|
EMAIL_HOST_USER = ''
|
|
EMAIL_HOST_PASSWORD = ''
|
|
EMAIL_USE_TLS = False
|
|
|
|
###############################################################################
|
|
# 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
|
|
###############################################################################
|
|
|
|
# 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
|
|
|
|
# LDAP server URI, such as "ldap://ldap.example.com:389" (non-SSL) or
|
|
# "ldaps://ldap.example.com:636" (SSL). LDAP authentication is disabled if this
|
|
# parameter is empty.
|
|
|
|
AUTH_LDAP_SERVER_URI = ''
|
|
|
|
# DN (Distinguished Name) of user to bind for all search queries. Normally in the format
|
|
# "CN=Some User,OU=Users,DC=example,DC=com" but may also be specified as
|
|
# "DOMAIN\username" for Active Directory. This is the system user account
|
|
# we will use to login to query LDAP for other user information.
|
|
|
|
AUTH_LDAP_BIND_DN = ''
|
|
|
|
# Password using to bind above user account.
|
|
|
|
AUTH_LDAP_BIND_PASSWORD = ''
|
|
|
|
# Whether to enable TLS when the LDAP connection is not using SSL.
|
|
|
|
AUTH_LDAP_START_TLS = False
|
|
|
|
# Imports needed for remaining LDAP configuration.
|
|
# do not alter this section
|
|
|
|
import ldap
|
|
from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion
|
|
from django_auth_ldap.config import ActiveDirectoryGroupType
|
|
|
|
# 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.
|
|
|
|
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
|
|
)
|
|
|
|
# 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.
|
|
|
|
#AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,OU=Users,DC=example,DC=com'
|
|
|
|
# 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.
|
|
|
|
AUTH_LDAP_USER_ATTR_MAP = {
|
|
'first_name': 'givenName',
|
|
'last_name': 'sn',
|
|
'email': 'mail',
|
|
}
|
|
|
|
# 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.
|
|
|
|
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
|
|
'DC=example,DC=com', # Base DN
|
|
ldap.SCOPE_SUBTREE, # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE
|
|
'(objectClass=group)', # Query
|
|
)
|
|
|
|
# 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
|
|
|
|
AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType()
|
|
|
|
# Group DN required to login. If specified, user must be a member of this
|
|
# 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.
|
|
|
|
#AUTH_LDAP_REQUIRE_GROUP = ''
|
|
|
|
# Group DN denied from login. If specified, user will not be allowed to login
|
|
# if a member of this group. Only one deny group is supported.
|
|
|
|
#AUTH_LDAP_DENY_GROUP = ''
|
|
|
|
# User profile flags updated from group membership (key is user attribute name,
|
|
# 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.
|
|
|
|
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
|
|
#'is_superuser': 'CN=Domain Admins,CN=Users,DC=example,DC=com',
|
|
}
|
|
|
|
# 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.
|
|
#
|
|
# - admins: None, True/False, string or list/tuple of strings.
|
|
# 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.
|
|
# - users: None, True/False, string or list/tuple of strings. Same rules apply
|
|
# as for admins.
|
|
# - remove_users: True/False. Defaults to False. Same rules as apply for remove_admins
|
|
|
|
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'],
|
|
# 'remove_users' : False,
|
|
# 'remove_admins' : False,
|
|
#},
|
|
#'Test Org 2': {
|
|
# 'admins': ['CN=Administrators,CN=Builtin,DC=example,DC=com'],
|
|
# 'users': True,
|
|
# 'remove_users' : False,
|
|
# 'remove_admins' : False,
|
|
#},
|
|
}
|