openstack-ansible-os_horizon/tasks/horizon_db_setup.yml
Steve Lewis 221e525fe1 Clear expired Django sessions regularly from DB
A random minute in the 21st hour UTC, daily, was chosen arbitrarily.
That it is run on a single arbitrary host from the set was done to
prevent unnecessary work being done until Bug #1424705 provides us with
a cleaner solution.

Adjusted to run once per day just to be sure that the operation doesn't
lock the table for a meaningful duration.

Making this configurable or tunable does not seem
to be necessary at this time.

Change-Id: I87164926a4d6a65d3c9f733d625a2d4af91c2597
Closes-Bug: #1466126
2015-06-24 11:16:42 -07:00

60 lines
1.8 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Create DB for service
mysql_db:
login_user: "{{ galera_root_user }}"
login_password: "{{ galera_root_password }}"
login_host: "{{ horizon_galera_address }}"
name: "{{ horizon_galera_database }}"
state: "present"
tags:
- horizon-db-setup
- name: Grant access to the DB for the service
mysql_user:
login_user: "{{ galera_root_user }}"
login_password: "{{ galera_root_password }}"
login_host: "{{ horizon_galera_address }}"
name: "{{ horizon_galera_user }}"
password: "{{ horizon_container_mysql_password }}"
host: "{{ item }}"
state: "present"
priv: "{{ horizon_galera_database }}.*:ALL"
with_items:
- "localhost"
- "%"
tags:
- horizon-db-setup
- name: Perform a horizon DB sync
command: horizon-manage.py syncdb --noinput
sudo: yes
sudo_user: "{{ horizon_system_user_name }}"
tags:
- horizon-db-sync
- horizon-setup
- name: Register DB session cleanup cron
cron:
name: "Clear out expired sessions"
minute: "{{ 58 | random(start=2) }}"
hour: 21
job: "/usr/local/bin/horizon-manage.py clearsessions"
user: "{{ horizon_system_user_name }}"
state: present
tags:
- horizon-db-setup