First draft of a statscache/frontend role.
This commit is contained in:
parent
d23d249652
commit
7710c5d15b
6 changed files with 139 additions and 1 deletions
|
@ -47,7 +47,7 @@
|
|||
- apache
|
||||
- role: openvpn/client
|
||||
when: env != "staging"
|
||||
# TODO -- include statscache/frontend here
|
||||
- statscache/frontend
|
||||
|
||||
tasks:
|
||||
- include: "{{ tasks }}/mod_wsgi.yml"
|
||||
|
|
8
roles/statscache/frontend/files/statscache.wsgi
Normal file
8
roles/statscache/frontend/files/statscache.wsgi
Normal file
|
@ -0,0 +1,8 @@
|
|||
# http://stackoverflow.com/questions/8007176/500-error-without-anything-in-the-apache-logs
|
||||
import logging
|
||||
import sys
|
||||
logging.basicConfig(stream=sys.stderr)
|
||||
|
||||
import statscache.app
|
||||
application = statscache.app.app
|
||||
#application.debug = True # Nope. Be careful!
|
74
roles/statscache/frontend/tasks/main.yml
Normal file
74
roles/statscache/frontend/tasks/main.yml
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
# Configuration for the Fedora Notifications webapp
|
||||
|
||||
- name: install needed packages
|
||||
yum: pkg={{ item }} state=present
|
||||
with_items:
|
||||
- statscache-web
|
||||
- python-psycopg2
|
||||
- libsemanage-python
|
||||
notify:
|
||||
- restart apache
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
|
||||
- name: copy statscache app configuration
|
||||
template: >
|
||||
src={{ item }} dest=/etc/fedmsg.d/{{ item }}
|
||||
owner=apache group=apache mode=0600
|
||||
with_items:
|
||||
- statscache.py
|
||||
notify:
|
||||
- restart apache
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
|
||||
- name: copy statscache httpd config
|
||||
template: >
|
||||
src=statscache.conf dest=/etc/httpd/conf.d/statscache.conf
|
||||
owner=apache group=apache mode=0644
|
||||
notify:
|
||||
- restart apache
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
|
||||
- name: copy custom wsgi file
|
||||
copy: src=statscache.wsgi dest=/usr/share/statscache/apache/statscache.wsgi mode=0644
|
||||
notify:
|
||||
- restart apache
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
|
||||
- name: copy app configuration
|
||||
template: >
|
||||
src=statscache.cfg dest=/etc/statscache.cfg
|
||||
owner=root group=apache mode=0640
|
||||
notify:
|
||||
- restart apache
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
|
||||
- name: apply selinux type to static files
|
||||
file: >
|
||||
dest=/usr/share/statscache/static
|
||||
setype=httpd_sys_content_t
|
||||
state=directory
|
||||
recurse=yes
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
- selinux
|
||||
|
||||
- name: ensure selinux lets httpd talk to postgres
|
||||
seboolean: name={{item}} state=yes persistent=yes
|
||||
with_items:
|
||||
- httpd_can_network_connect_db
|
||||
tags:
|
||||
- statscache
|
||||
- statscache/frontend
|
||||
- selinux
|
2
roles/statscache/frontend/templates/statscache.cfg
Normal file
2
roles/statscache/frontend/templates/statscache.cfg
Normal file
|
@ -0,0 +1,2 @@
|
|||
### Secret key for the Flask application
|
||||
SECRET_KEY='{{statscache_secret_key}}'
|
17
roles/statscache/frontend/templates/statscache.conf
Normal file
17
roles/statscache/frontend/templates/statscache.conf
Normal file
|
@ -0,0 +1,17 @@
|
|||
LoadModule wsgi_module modules/mod_wsgi.so
|
||||
|
||||
WSGIPythonEggs /var/cache/statscache/.python-eggs
|
||||
WSGIDaemonProcess statscache user=apache group=apache maximum-requests=50000 display-name=statscache processes=4 threads=4 inactivity-timeout=300
|
||||
WSGISocketPrefix run/wsgi
|
||||
WSGIRestrictStdout Off
|
||||
WSGIRestrictSignal Off
|
||||
WSGIPythonOptimize 1
|
||||
|
||||
WSGIScriptAlias / /usr/share/statscache/apache/statscache.wsgi
|
||||
|
||||
Alias /static/ /usr/lib/python2.7/site-packages/statscache/static/
|
||||
|
||||
<Directory /usr/share/statscache/>
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Directory>
|
37
roles/statscache/frontend/templates/statscache.py
Normal file
37
roles/statscache/frontend/templates/statscache.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
import datetime
|
||||
|
||||
|
||||
config = {
|
||||
"statscache.datagrepper.profile": False,
|
||||
|
||||
# Consumer stuff
|
||||
"statscache.consumer.enabled": False,
|
||||
|
||||
"statscache.sqlalchemy.uri": "postgres://statscache:{{statscache_db_password}}@db01/statscache",
|
||||
|
||||
# stats models will go back at least this far (current value arbitrary)
|
||||
"statscache.consumer.epoch": datetime.datetime(year=2015, month=8, day=8),
|
||||
|
||||
# stats models are updated at this frequency
|
||||
"statscache.producer.frequency": datetime.timedelta(seconds=1),
|
||||
|
||||
# Configuration of web API
|
||||
"statscache.app.maximum_rows_per_page": 100,
|
||||
"statscache.app.default_rows_per_page": 100,
|
||||
|
||||
# Turn on logging for statscache
|
||||
"logging": dict(
|
||||
loggers=dict(
|
||||
statscache={
|
||||
"level": "DEBUG",
|
||||
"propagate": False,
|
||||
"handlers": ["console"],
|
||||
},
|
||||
statscache_plugins={
|
||||
"level": "DEBUG",
|
||||
"propagate": False,
|
||||
"handlers": ["console"],
|
||||
},
|
||||
),
|
||||
),
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue