switch memcached from tcp to unix domain socket

This commit is contained in:
chris meyers
2020-04-01 16:09:57 -04:00
parent 37a715c680
commit 7433aab258
13 changed files with 25 additions and 51 deletions

View File

@@ -405,17 +405,6 @@ AWX_ISOLATED_PERIODIC_CHECK = 600
# Verbosity level for isolated node management tasks # Verbosity level for isolated node management tasks
AWX_ISOLATED_VERBOSITY = 0 AWX_ISOLATED_VERBOSITY = 0
# Memcached django cache configuration
# CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
# 'LOCATION': '127.0.0.1:11211',
# 'TIMEOUT': 864000,
# 'KEY_PREFIX': 'tower_dev',
# }
# }
DEVSERVER_DEFAULT_ADDR = '0.0.0.0' DEVSERVER_DEFAULT_ADDR = '0.0.0.0'
DEVSERVER_DEFAULT_PORT = '8013' DEVSERVER_DEFAULT_PORT = '8013'
@@ -458,7 +447,7 @@ CELERYBEAT_SCHEDULE = {
CACHES = { CACHES = {
'default': { 'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'memcached:11211', 'LOCATION': 'unix:/var/run/memcached/memcached.sock'
}, },
} }

View File

@@ -27,7 +27,6 @@ kubernetes_redis_image: "redis"
kubernetes_redis_image_tag: "latest" kubernetes_redis_image_tag: "latest"
kubernetes_redis_config_mount_path: "/usr/local/etc/redis/redis.conf" kubernetes_redis_config_mount_path: "/usr/local/etc/redis/redis.conf"
memcached_hostname: localhost
memcached_mem_request: 1 memcached_mem_request: 1
memcached_cpu_request: 500 memcached_cpu_request: 500

View File

@@ -192,16 +192,6 @@ data:
LOGGING['handlers']['system_tracking_migrations'] = {'class': 'logging.NullHandler'} LOGGING['handlers']['system_tracking_migrations'] = {'class': 'logging.NullHandler'}
LOGGING['handlers']['management_playbooks'] = {'class': 'logging.NullHandler'} LOGGING['handlers']['management_playbooks'] = {'class': 'logging.NullHandler'}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'unix:/var/run/memcached/memcached.sock'
},
'ephemeral': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
USE_X_FORWARDED_PORT = True USE_X_FORWARDED_PORT = True
AWX_CONTAINER_GROUP_DEFAULT_IMAGE = "{{ container_groups_image }}" AWX_CONTAINER_GROUP_DEFAULT_IMAGE = "{{ container_groups_image }}"

View File

@@ -3,5 +3,3 @@ DATABASE_NAME={{ pg_database }}
DATABASE_HOST={{ pg_hostname|default('postgresql') }} DATABASE_HOST={{ pg_hostname|default('postgresql') }}
DATABASE_PORT={{ pg_port|default('5432') }} DATABASE_PORT={{ pg_port|default('5432') }}
DATABASE_PASSWORD={{ pg_password | quote }} DATABASE_PASSWORD={{ pg_password | quote }}
MEMCACHED_HOST={{ memcached_hostname|default('localhost') }}
MEMCACHED_PORT={{ memcached_port|default('11211') }}

View File

@@ -8,7 +8,5 @@ postgresql_image: "postgres:{{postgresql_version}}"
memcached_image: "memcached" memcached_image: "memcached"
memcached_version: "alpine" memcached_version: "alpine"
memcached_hostname: "memcached"
memcached_port: "11211"
compose_start_containers: true compose_start_containers: true

View File

@@ -10,6 +10,12 @@
state: directory state: directory
mode: 0777 mode: 0777
- name: Create Memcached socket directory
file:
path: "{{ docker_compose_dir }}/memcached_socket"
state: directory
mode: 0777
- name: Create Docker Compose Configuration - name: Create Docker Compose Configuration
template: template:
src: "{{ item }}.j2" src: "{{ item }}.j2"

View File

@@ -10,14 +10,4 @@ DATABASES = {
} }
} }
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '{}:{}'.format("{{ memcached_hostname }}", "{{ memcached_port }}")
},
'ephemeral': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
BROADCAST_WEBSOCKET_SECRET = "{{ broadcast_websocket_secret | b64encode }}" BROADCAST_WEBSOCKET_SECRET = "{{ broadcast_websocket_secret | b64encode }}"

View File

@@ -25,6 +25,7 @@ services:
- "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py" - "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py"
- "{{ docker_compose_dir }}/nginx.conf:/etc/nginx/nginx.conf:ro" - "{{ docker_compose_dir }}/nginx.conf:/etc/nginx/nginx.conf:ro"
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw" - "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
{% if project_data_dir is defined %} {% if project_data_dir is defined %}
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}" - "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
{% endif %} {% endif %}
@@ -78,6 +79,7 @@ services:
- "{{ docker_compose_dir }}/environment.sh:/etc/tower/conf.d/environment.sh" - "{{ docker_compose_dir }}/environment.sh:/etc/tower/conf.d/environment.sh"
- "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py" - "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py"
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw" - "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
{% if project_data_dir is defined %} {% if project_data_dir is defined %}
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}" - "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
{% endif %} {% endif %}
@@ -125,15 +127,19 @@ services:
volumes: volumes:
- "{{ docker_compose_dir }}/redis.conf:/usr/local/etc/redis/redis.conf:ro" - "{{ docker_compose_dir }}/redis.conf:/usr/local/etc/redis/redis.conf:ro"
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw" - "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
memcached: memcached:
image: "{{ memcached_image }}:{{ memcached_version }}" image: "{{ memcached_image }}:{{ memcached_version }}"
container_name: awx_memcached container_name: awx_memcached
command: ["-s", "/var/run/memcached/memcached.sock", "-a", "0666"]
restart: unless-stopped restart: unless-stopped
environment: environment:
http_proxy: {{ http_proxy | default('') }} http_proxy: {{ http_proxy | default('') }}
https_proxy: {{ https_proxy | default('') }} https_proxy: {{ https_proxy | default('') }}
no_proxy: {{ no_proxy | default('') }} no_proxy: {{ no_proxy | default('') }}
volumes:
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
{% if pg_hostname is not defined %} {% if pg_hostname is not defined %}
postgres: postgres:

View File

@@ -6,7 +6,5 @@ DATABASE_PASSWORD={{ pg_password|default('awxpass')|quote }}
{% if pg_admin_password is defined %} {% if pg_admin_password is defined %}
DATABASE_ADMIN_PASSWORD={{ pg_admin_password|quote }} DATABASE_ADMIN_PASSWORD={{ pg_admin_password|quote }}
{% endif %} {% endif %}
MEMCACHED_HOST={{ memcached_hostname|default('memcached') }}
MEMCACHED_PORT={{ memcached_port|default('11211')|quote }}
AWX_ADMIN_USER={{ admin_user|quote }} AWX_ADMIN_USER={{ admin_user|quote }}
AWX_ADMIN_PASSWORD={{ admin_password|quote }} AWX_ADMIN_PASSWORD={{ admin_password|quote }}

View File

@@ -91,15 +91,6 @@ data:
'ROUTING': 'awx.main.routing.channel_routing', 'ROUTING': 'awx.main.routing.channel_routing',
'CONFIG': {'url': BROKER_URL}} 'CONFIG': {'url': BROKER_URL}}
} }
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '{}:{}'.format("localhost", "11211")
},
'ephemeral': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
--- ---
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap

View File

@@ -30,6 +30,7 @@ services:
volumes: volumes:
- "../:/awx_devel" - "../:/awx_devel"
- "./redis/redis_socket_ha_1:/var/run/redis/" - "./redis/redis_socket_ha_1:/var/run/redis/"
- "./memcached/:/var/run/memcached"
ports: ports:
- "5899-5999:5899-5999" - "5899-5999:5899-5999"
awx-2: awx-2:
@@ -48,6 +49,7 @@ services:
volumes: volumes:
- "../:/awx_devel" - "../:/awx_devel"
- "./redis/redis_socket_ha_2:/var/run/redis/" - "./redis/redis_socket_ha_2:/var/run/redis/"
- "./memcached/:/var/run/memcached"
ports: ports:
- "7899-7999:7899-7999" - "7899-7999:7899-7999"
awx-3: awx-3:
@@ -67,6 +69,7 @@ services:
volumes: volumes:
- "../:/awx_devel" - "../:/awx_devel"
- "./redis/redis_socket_ha_3:/var/run/redis/" - "./redis/redis_socket_ha_3:/var/run/redis/"
- "./memcached/:/var/run/memcached"
ports: ports:
- "8899-8999:8899-8999" - "8899-8999:8899-8999"
redis_1: redis_1:
@@ -103,5 +106,9 @@ services:
image: postgres:10 image: postgres:10
container_name: tools_postgres_1 container_name: tools_postgres_1
memcached: memcached:
user: ${CURRENT_UID}
image: memcached:alpine image: memcached:alpine
container_name: tools_memcached_1 container_name: tools_memcached_1
command: ["-s", "/var/run/memcached/memcached.sock", "-a", "0666"]
volumes:
- "./memcached/:/var/run/memcached"

View File

@@ -33,6 +33,7 @@ services:
- "../:/awx_devel" - "../:/awx_devel"
- "../awx/projects/:/var/lib/awx/projects/" - "../awx/projects/:/var/lib/awx/projects/"
- "./redis/redis_socket_standalone:/var/run/redis/" - "./redis/redis_socket_standalone:/var/run/redis/"
- "./memcached/:/var/run/memcached"
privileged: true privileged: true
# A useful container that simply passes through log messages to the console # A useful container that simply passes through log messages to the console
# helpful for testing awx/tower logging # helpful for testing awx/tower logging
@@ -50,10 +51,12 @@ services:
environment: environment:
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
memcached: memcached:
user: ${CURRENT_UID}
image: memcached:alpine image: memcached:alpine
container_name: tools_memcached_1 container_name: tools_memcached_1
ports: command: ["-s", "/var/run/memcached/memcached.sock", "-a", "0666"]
- "11211:11211" volumes:
- "./memcached/:/var/run/memcached"
redis: redis:
image: redis:latest image: redis:latest
container_name: tools_redis_1 container_name: tools_redis_1

View File

@@ -3,7 +3,6 @@ set +x
# Wait for the databases to come up # Wait for the databases to come up
ansible -i "127.0.0.1," -c local -v -m wait_for -a "host=postgres port=5432" all ansible -i "127.0.0.1," -c local -v -m wait_for -a "host=postgres port=5432" all
ansible -i "127.0.0.1," -c local -v -m wait_for -a "host=memcached port=11211" all
ansible -i "127.0.0.1," -c local -v -m wait_for -a "path=/var/run/redis/redis.sock" all ansible -i "127.0.0.1," -c local -v -m wait_for -a "path=/var/run/redis/redis.sock" all
# In case AWX in the container wants to connect to itself, use "docker exec" to attach to the container otherwise # In case AWX in the container wants to connect to itself, use "docker exec" to attach to the container otherwise