Skip to content
Snippets Groups Projects
Commit dd9d9d85 authored by Robin Sonnabend's avatar Robin Sonnabend
Browse files

Added role for schildergenerator

parent 8035a80d
Branches
No related tags found
No related merge requests found
...@@ -115,4 +115,5 @@ ...@@ -115,4 +115,5 @@
- "{{protokolle_name}}-celery" - "{{protokolle_name}}-celery"
tags: tags:
- config - config
- systemd
- protokollsystem - protokollsystem
---
# file: roles/schildergenerator/defaults/main.yml
schilder_web_root: /var/www/schilder
schilder_name: schilder
schilder_user: schilder
schilder_group: schilder
schilder_printsrv: printsrv.fsmpi.rwth-aachen.de
schilder_printers:
- description: "1 - Kopierer"
name: "Kopierer"
schilder_lproptions:
- "-Fa4g"
- "-N1"
- "-o fitplot"
schilder_templates_url: https://git.fsmpi.rwth-aachen.de/schilder/templates-fsmpi-schilder.git
Flask
Flask-Genshi
Genshi
docutils
---
# file: roles/schilder/handlers/main.yml
- name: reload systemd service files
command: systemctl daemon-reload
- name: restart uwsgi for schilder
service: name="{{schilder_name}}" state=restarted enabled=yes
- name: create tmpfiles
command: systemd-tmpfiles --create
---
# file: roles/schildergenerator/meta/main.yml
dependencies:
- { role: webserver }
- { role: texlive }
- { role: cups-client }
- { role: uwsgi-python, uwsgi_name: "{{schilder_name}}", uwsgi_user: "{{schilder_user}}", uwsgi_group: "{{schilder_group}}", uwsgi_path: "{{schilder_web_root}}/program", uwsgi_home: "{{schilder_web_root}}", uwsgi_program: "schilder.py", uwsgi_callable: "app", uwsgi_command: "", uwsgi_db: "", uwsgi_python: 2, uwsgi_mules: 0 }
---
# file: roles/schildergenerator/tasks/main.yml
- debug: var=schilder_web_root
- name: ensure we have necessary software installed
apt: name="{{item}}" state=present
with_items:
- graphicsmagick
- python-pythonmagick
tags:
- packages
- schildergenerator
- name: ensure we have the folders for the program
file:
path: "{{item}}"
state: directory
owner: "{{schilder_user}}"
group: "{{schilder_group}}"
mode: 0755
with_items:
- "{{schilder_web_root}}"
- "{{schilder_web_root}}/program"
tags:
- directory
- schildergenerator
- name: ensure we have the program
git:
repo: "https://git.fsmpi.rwth-aachen.de/schilder/schildergenerator.git"
dest: "{{schilder_web_root}}/program"
become: yes
become_user: "{{schilder_user}}"
notify:
- restart uwsgi for schilder
tags:
- git
- schildergenerator
- name: ensure we have our requirements
copy:
src: requirements.txt
dest: "{{schilder_web_root}}/requirements.txt"
owner: "{{schilder_user}}"
group: "{{schilder_group}}"
mode: 0644
tags:
- pip
- python
- schildergenerator
- name: ensure we have a virtualenv
pip:
requirements: "{{schilder_web_root}}/requirements.txt"
virtualenv: "{{schilder_web_root}}/program"
virtualenv_python: python2
virtualenv_site_packages: yes
become: yes
become_user: "{{schilder_user}}"
notify:
- restart uwsgi for schilder
tags:
- pip
- python
- schildergenerator
- name: ensure we have our config
template:
src: config.py
dest: "{{schilder_web_root}}/program/config.py"
owner: "{{schilder_user}}"
group: "{{schilder_group}}"
mode: 0644
notify:
- restart uwsgi for schilder
tags:
- config
- python
- schildergenerator
- name: ensure we have out templates
git:
repo: "{{schilder_templates_url}}"
dest: "{{schilder_web_root}}/tex"
become: yes
become_user: "{{schilder_user}}"
notify:
- restart uwsgi for schilder
tags:
- git
- schildergenerator
- name: ensure the unit file exists
template:
src: schilder.service
dest: "/etc/systemd/system/{{schilder_name}}.service"
owner: root
group: root
mode: 0644
notify:
- reload systemd service files
- restart uwsgi for schilder
tags:
- config
- systemd
- schildergenerator
- meta: flush_handlers
- name: ensure the service is enabled
service: name="{{schilder_name}}.service" enabled=yes
tags:
- config
- systemd
- schildergenerator
#### BASIC CONFIGURATION
# Secret key (used for session cookie encryption). Needs to be set to some random string.
# Yes, just smash your keyboard for some random characters. No, don't publish them anywhere.
# Yes, you will need this. If you get random RuntimeErrors, you did not set this.
app_secret = '{{range(10**15, 10**16)|random}}'
## You will need to use absolute paths!
# Base directory. You need to set this again in schilder.wsgi if you use WSGI.
basedir = '{{schilder_web_root}}/program'
# Temp directory for imagemagick/pdflatex work files (needs to be writeable)
tmpdir = '/tmp'
## All following directories derive from basedir, you don't really need to alter them
# Data directory (needs to be writeable)
datadir = basedir + '/data'
# HTML template directory
templatedir = basedir + '/templates'
# TeX template directory
textemplatedir = '{{schilder_web_root}}/tex'
# TeX support file directory (all files that might be needed by a tex template)
texsupportdir = textemplatedir + '/support'
# PDF data directory (needs to be writeable)
pdfdir = datadir + '/pdf'
# Image data directory (needs to be writeable)
imagedir = datadir + '/images'
# Cache dir (needs to be writable)
cachedir = datadir + '/cache'
# Upload temp directory (needs to be writeable)
uploaddir = datadir + '/upload'
# allowed image upload file extensions
allowed_extensions = set(['png', 'jpg', 'jpeg', 'gif', 'svg'])
#### PRINTER OPTIONS
# CUPS printer names
printers = {
{% for printer in schilder_printers %}
'{{printer.description}}': '{{printer.name}}',
{% endfor %}
}
printserver = '{{schilder_printsrv}}'
# additional lpr options. Use an empty list if not needed.
lproptions = [
{% for option in schilder_lproptions %}
'{{option}}',
{% endfor %}
]
#### DEVELOPERS ONLY
# Listening interface and port, usually '127.0.0.1' or '0.0.0.0'
# Only effective if started from command line (instead via webserver/WSGI),
# therefore these options would only be interesting to a developer.
listen = '127.0.0.1'
port = 5432
[Unit]
Description=Protokollsystem
After=network.target
[Service]
ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/apps-available/{{schilder_name}}.ini
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment