bk-dss: new role to be deployed on LDAP host
This commit is contained in:
parent
32f976a163
commit
22c1b0d469
@ -2,6 +2,8 @@
|
||||
|
||||
certmgr_mode: webserver
|
||||
|
||||
dss_domain: dss.binary-kitchen.de
|
||||
|
||||
gogs_domain: git.binary-kitchen.de
|
||||
gogs_dbname: gogs
|
||||
gogs_dbuser: gogs
|
||||
|
3
roles/bk-dss/defaults/main.yml
Normal file
3
roles/bk-dss/defaults/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
|
||||
dss_uwsgi_port: 5001
|
10
roles/bk-dss/handlers/main.yml
Normal file
10
roles/bk-dss/handlers/main.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
|
||||
- name: Run certmgr
|
||||
command: /opt/acertmgr/acertmgr.py
|
||||
|
||||
- name: Restart nginx
|
||||
service: name=nginx state=restarted
|
||||
|
||||
- name: Restart uwsgi
|
||||
service: name=uwsgi state=restarted
|
5
roles/bk-dss/meta/main.yml
Normal file
5
roles/bk-dss/meta/main.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
|
||||
dependencies:
|
||||
- { role: certmgr }
|
||||
- { role: nginx, nginx_ssl: True }
|
43
roles/bk-dss/tasks/main.yml
Normal file
43
roles/bk-dss/tasks/main.yml
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
|
||||
- name: Install dependencies
|
||||
apt: name={{ item }}
|
||||
with_items:
|
||||
- git
|
||||
- python3-flask
|
||||
- python3-flaskext.wtf
|
||||
- python3-passlib
|
||||
- python3-pyldap
|
||||
- python3-redis
|
||||
- redis-server
|
||||
- uwsgi
|
||||
- uwsgi-plugin-python3
|
||||
|
||||
- name: Install bk-dss
|
||||
git: repo=https://git.binary-kitchen.de/moepman/bk-dss.git dest=/opt/bk-dss depth=1 version=187bfe4f42f28f45e745ca4b1f8325d8622cec16
|
||||
|
||||
- name: Configure bk-dss
|
||||
template: src=config.cfg.j2 dest=/opt/bk-dss/config.cfg
|
||||
|
||||
- name: Configure uwsgi
|
||||
template: src=uwsgi.ini.j2 dest=/etc/uwsgi/apps-available/dss.ini
|
||||
|
||||
- name: Enable uwsgi
|
||||
file: src=/etc/uwsgi/apps-available/dss.ini dest=/etc/uwsgi/apps-enabled/dss.ini state=link
|
||||
notify: Restart uwsgi
|
||||
|
||||
- name: Ensure certificates are available
|
||||
command: openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/nginx/ssl/dss.binary-kitchen.de.key -out /etc/nginx/ssl/dss.binary-kitchen.de.crt -days 730 -subj "/CN=dss.binary-kitchen.de" creates=/etc/nginx/ssl/dss.binary-kitchen.de.crt
|
||||
notify: Restart nginx
|
||||
|
||||
- name: Configure certificate manager
|
||||
template: src=certs.j2 dest=/etc/acme/domains.d/{{ dss_domain }}.conf
|
||||
notify: Run certmgr
|
||||
|
||||
- name: Configure vhosts
|
||||
template: src=vhost.j2 dest=/etc/nginx/sites-available/dss
|
||||
notify: Restart nginx
|
||||
|
||||
- name: Enable vhosts
|
||||
file: src=/etc/nginx/sites-available/dss dest=/etc/nginx/sites-enabled/dss state=link
|
||||
notify: Restart nginx
|
15
roles/bk-dss/templates/certs.j2
Normal file
15
roles/bk-dss/templates/certs.j2
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
{{ dss_domain }}:
|
||||
- path: /etc/nginx/ssl/{{ dss_domain }}.crt
|
||||
user: root
|
||||
group: root
|
||||
perm: '400'
|
||||
format: crt,ca
|
||||
action: '/usr/sbin/service nginx restart'
|
||||
- path: /etc/nginx/ssl/{{ dss_domain }}.key
|
||||
user: root
|
||||
group: root
|
||||
perm: '400'
|
||||
format: key
|
||||
action: '/usr/sbin/service nginx restart'
|
34
roles/bk-dss/templates/config.cfg.j2
Normal file
34
roles/bk-dss/templates/config.cfg.j2
Normal file
@ -0,0 +1,34 @@
|
||||
DEBUG = True
|
||||
SECRET_KEY = "CHANGE!ME"
|
||||
SESSION_TIMEOUT = 3600
|
||||
|
||||
LDAP_CA = "/etc/ldap/ssl/BKCA.crt"
|
||||
LDAP_URI = "ldaps://{{ ldap_host }}"
|
||||
LDAP_BASE = "{{ ldap_base }}"
|
||||
|
||||
ADMINS = [ "cn=moepman,ou=people,dc=binary-kitchen,dc=de", "cn=Manager,dc=binary-kitchen,dc=de" ]
|
||||
|
||||
USER_DN = "cn={user},ou=people,dc=binary-kitchen,dc=de"
|
||||
|
||||
USER_ATTRS = {
|
||||
'objectClass' : ['top', 'inetOrgPerson', 'organizationalPerson', 'person', 'posixAccount', 'kitchenUser', 'radiusprofile', 'sambaSamAccount'],
|
||||
'cn' : '{user}',
|
||||
'gidNumber' : '20000',
|
||||
'givenName' : '{gn}',
|
||||
'homeDirectory' : '/home/{user}',
|
||||
'loginShell' : '/bin/bash',
|
||||
'mail' : '{user}@binary-kitchen.de',
|
||||
'radiusTunnelMediumType' : '802',
|
||||
'radiusTunnelPrivateGroupId' : '2303',
|
||||
'radiusTunnelType' : 'VLAN',
|
||||
'sambaSID' : 'S-1-0-0-{uid}',
|
||||
'sn' : '{sn}',
|
||||
'uid' : '{user}',
|
||||
'uidNumber' : '{uid}',
|
||||
'userPassword' : '{pass}'
|
||||
}
|
||||
|
||||
GROUP_DN = 'cn=members,ou=groups,dc=binary-kitchen,dc=de'
|
||||
|
||||
REDIS_HOST = "127.0.0.1"
|
||||
REDIS_PASSWD = None
|
10
roles/bk-dss/templates/uwsgi.ini.j2
Normal file
10
roles/bk-dss/templates/uwsgi.ini.j2
Normal file
@ -0,0 +1,10 @@
|
||||
[uwsgi]
|
||||
socket = 127.0.0.1:{{ dss_uwsgi_port }}
|
||||
chdir = /opt/bk-dss
|
||||
plugin = python3
|
||||
wsgi-file = dss.py
|
||||
callable = app
|
||||
uid = www-data
|
||||
gid = www-data
|
||||
processess = 4
|
||||
threads = 2
|
34
roles/bk-dss/templates/vhost.j2
Normal file
34
roles/bk-dss/templates/vhost.j2
Normal file
@ -0,0 +1,34 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name {{ dss_domain }};
|
||||
|
||||
location /.well-known/acme-challenge {
|
||||
default_type "text/plain";
|
||||
alias /var/www/acme-challenge;
|
||||
}
|
||||
|
||||
location / {
|
||||
return 301 https://{{ dss_domain }}$request_uri;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
|
||||
server_name {{ dss_domain }};
|
||||
|
||||
ssl_certificate_key /etc/nginx/ssl/dss.binary-kitchen.de.key;
|
||||
ssl_certificate /etc/nginx/ssl/dss.binary-kitchen.de.crt;
|
||||
|
||||
location / {
|
||||
uwsgi_pass 127.0.0.1:{{ dss_uwsgi_port }};
|
||||
include uwsgi_params;
|
||||
}
|
||||
|
||||
location /static {
|
||||
root /opt/bk-dss;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user