forked from infra/ansible
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
|
certmgr_mode: webserver
|
||||||
|
|
||||||
|
dss_domain: dss.binary-kitchen.de
|
||||||
|
|
||||||
gogs_domain: git.binary-kitchen.de
|
gogs_domain: git.binary-kitchen.de
|
||||||
gogs_dbname: gogs
|
gogs_dbname: gogs
|
||||||
gogs_dbuser: 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