zezere: role/playbook to deploy Zezere
Zezere is the Fedora IoT device provisioning service. It is the software that runs *provision.fedoraproject.org*, but it can be self-hosted (if you can figure it out; there is no documentation whatsoever). The main use case for running Zezere locally is to automatically add trusted SSH public keys to Fedora IoT devices, without depending on a cloud service. This playbook sets up Zezere with the very minimal configuration needed to meet this goal.jenkins-master
parent
3d9d7423ef
commit
ccdaad40bf
|
@ -0,0 +1,3 @@
|
||||||
|
zezere_allowed_hosts:
|
||||||
|
- '{{ ansible_fqdn }}'
|
||||||
|
- zezere.{{ ansible_domain }}
|
|
@ -0,0 +1,14 @@
|
||||||
|
# vim: set ft=apache :
|
||||||
|
|
||||||
|
WSGIDaemonProcess zezere \
|
||||||
|
user=zezere \
|
||||||
|
group=zezere \
|
||||||
|
display-name=%{GROUP}
|
||||||
|
|
||||||
|
|
||||||
|
WSGIScriptAlias / /usr/local/share/zezere.wsgi \
|
||||||
|
process-group=zezere
|
||||||
|
|
||||||
|
<Location />
|
||||||
|
Require all granted
|
||||||
|
</Location>
|
|
@ -0,0 +1 @@
|
||||||
|
from zezere.wsgi import application
|
|
@ -0,0 +1,2 @@
|
||||||
|
- name: relabel zezere data directory
|
||||||
|
command: restorecon -RF /var/lib/zezere
|
|
@ -0,0 +1,4 @@
|
||||||
|
dependencies:
|
||||||
|
- role: apache
|
||||||
|
tags:
|
||||||
|
- apache
|
|
@ -0,0 +1,82 @@
|
||||||
|
- name: ensure zezere is installed
|
||||||
|
package:
|
||||||
|
name: '{{ zezere_packages }}'
|
||||||
|
state: present
|
||||||
|
register: install_zezere
|
||||||
|
tags:
|
||||||
|
- install
|
||||||
|
|
||||||
|
- name: ensure zezere group is present
|
||||||
|
group:
|
||||||
|
name: zezere
|
||||||
|
system: true
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- user
|
||||||
|
- group
|
||||||
|
- name: ensure zezere user is present
|
||||||
|
user:
|
||||||
|
name: zezere
|
||||||
|
group: zezere
|
||||||
|
system: true
|
||||||
|
shell: /sbin/nologin
|
||||||
|
home: /var/lib/zezere
|
||||||
|
createhome: false
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- user
|
||||||
|
|
||||||
|
- name: ensure zezere data directory exists
|
||||||
|
file:
|
||||||
|
path: /var/lib/zezere
|
||||||
|
owner: zezere
|
||||||
|
group: zezere
|
||||||
|
mode: '0700'
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- datadir
|
||||||
|
- name: ensure zezere data directory selinux label is set
|
||||||
|
sefcontext:
|
||||||
|
path: /var/lib/zezere(/.*)?
|
||||||
|
setype: httpd_var_lib_t
|
||||||
|
state: present
|
||||||
|
notify: relabel zezere data directory
|
||||||
|
tags:
|
||||||
|
- datadir
|
||||||
|
- selinux
|
||||||
|
|
||||||
|
- name: ensure zezere is configured
|
||||||
|
template:
|
||||||
|
src: zezere.conf.j2
|
||||||
|
dest: /etc/zezere.conf
|
||||||
|
mode: '0640'
|
||||||
|
owner: root
|
||||||
|
group: zezere
|
||||||
|
notify:
|
||||||
|
- reload httpd
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: run zezere database migrations
|
||||||
|
become: true
|
||||||
|
become_user: zezere
|
||||||
|
command:
|
||||||
|
zezere-manage migrate
|
||||||
|
when: >-
|
||||||
|
zezere_migrate|d|bool or
|
||||||
|
install_zezere is defined and install_zezere.changed
|
||||||
|
tags:
|
||||||
|
- migration
|
||||||
|
|
||||||
|
- name: ensure zezere wsgi script is installed
|
||||||
|
copy:
|
||||||
|
src: zezere.wsgi
|
||||||
|
dest: /usr/local/share/zezere.wsgi
|
||||||
|
notify: reload httpd
|
||||||
|
- name: ensure apache is configured to serve zezere
|
||||||
|
copy:
|
||||||
|
src: zezere.httpd.conf
|
||||||
|
dest: /etc/httpd/conf.d/zezere.conf
|
||||||
|
notify: reload httpd
|
||||||
|
tags:
|
||||||
|
- apache-config
|
|
@ -0,0 +1,25 @@
|
||||||
|
[global]
|
||||||
|
secret_key = {{ zezere_secret_key }}
|
||||||
|
debug = no
|
||||||
|
allowed_hosts = {{ zezere_allowed_hosts|join(' ') }}
|
||||||
|
secure_cookie = yes
|
||||||
|
auth_method = local
|
||||||
|
|
||||||
|
[oidc.rp]
|
||||||
|
# client_id =
|
||||||
|
# client_secret =
|
||||||
|
sign_algo = RS256
|
||||||
|
|
||||||
|
[oidc.op]
|
||||||
|
# authorization_endpoint =
|
||||||
|
# token_endpoint =
|
||||||
|
# userinfo_endpoint =
|
||||||
|
# jwks_endpoint =
|
||||||
|
|
||||||
|
[database]
|
||||||
|
engine = django.db.backends.sqlite3
|
||||||
|
name = /var/lib/zezere/db.sqlite3
|
||||||
|
|
||||||
|
[secure_proxy_ssl_header]
|
||||||
|
# header = HTTP_X_FORWARDED_PROTO
|
||||||
|
# value = https
|
|
@ -0,0 +1,3 @@
|
||||||
|
zezere_packages:
|
||||||
|
- mod_wsgi
|
||||||
|
- zezere
|
|
@ -0,0 +1,6 @@
|
||||||
|
- hosts: zezere
|
||||||
|
vars_files:
|
||||||
|
- vault/zezere/{{ inventory_hostname }}
|
||||||
|
roles:
|
||||||
|
- role: zezere
|
||||||
|
tags: zezere
|
Loading…
Reference in New Issue