Stefan Haun
b6a05b8c8c
Openhab 3.1 does not work for us. The chosen version has been detemined by analysing the (scarce) log entries. It seems that migration beyond this point breaks the configuration and leads to an incomplete setup.
226 lines
6 KiB
YAML
226 lines
6 KiB
YAML
---
|
|
- hosts: pottwal.n39.eu
|
|
become: true
|
|
|
|
vars:
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
|
|
mosquitto_image: eclipse-mosquitto:1.6
|
|
mosquitto_data: /srv/data/mosquitto
|
|
|
|
openhab_image: openhab/openhab:2.5.11
|
|
openhab_data: /srv/data/openhab
|
|
openhab_host_port: 8081
|
|
openhab_configuration_source: https://github.com/netz39/n39-openhab.git
|
|
openhab_configuration_version: master
|
|
|
|
gitea_host_port: 9091
|
|
uritools_host_port: 8080
|
|
entities_validation_svc_host_port: 8082
|
|
shlink_host_port: 8083
|
|
shlink_domain_name: sl.n39.eu
|
|
|
|
roles:
|
|
- role: docker_setup
|
|
vars:
|
|
docker_data_root: "/srv/docker"
|
|
- role: apache
|
|
|
|
tasks:
|
|
|
|
- name: Check if gitea data dir exists
|
|
ansible.builtin.stat:
|
|
path: "/srv/data/gitea"
|
|
register: gitea_dir
|
|
- name: Fail if gitea data dir does not exist
|
|
ansible.builtin.fail:
|
|
msg: "Gitea data dir is missing, please restore from the backup!"
|
|
when: not gitea_dir.stat.exists
|
|
|
|
# If port 2222 is changed here, it must also be adapted
|
|
# in the gitea config file (see application volume)!!
|
|
- name: Setup the docker container for gitea
|
|
docker_container:
|
|
name: gitea
|
|
image: "gitea/gitea:1.15.10"
|
|
pull: true
|
|
state: started
|
|
restart_policy: unless-stopped
|
|
detach: yes
|
|
ports:
|
|
# - 127.0.0.1:{{ gitea_host_port }}:3000
|
|
- "{{ gitea_host_port }}:3000"
|
|
- 2222:2222
|
|
env:
|
|
APP_NAME="Netz39 Gitea"
|
|
RUN_MODE="prod"
|
|
SSH_DOMAIN="gitea.n39.eu"
|
|
SSH_PORT="2222"
|
|
SSH_START_SERVER="false"
|
|
ROOT_URL="https://gitea.n39.eu"
|
|
DISABLE_REGISTRATION="true"
|
|
USER_UID=1000
|
|
USER_GID=1000
|
|
volumes:
|
|
- "/srv/data/gitea:/data:rw"
|
|
|
|
- name: Setup proxy site gitea.n39.eu
|
|
include_role:
|
|
name: setup-http-site-proxy
|
|
vars:
|
|
site_name: "gitea.n39.eu"
|
|
proxy_port: "{{ gitea_host_port }}"
|
|
|
|
- name: Ensure apt-cacher container is running
|
|
docker_container:
|
|
name: apt_cacher_ng
|
|
image: "mrtux/apt-cacher-ng"
|
|
pull: true
|
|
state: started
|
|
restart_policy: unless-stopped
|
|
detach: yes
|
|
ports:
|
|
- 3142:3142
|
|
|
|
|
|
- name: Ensure the mosquitto directories exist
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- "{{ mosquitto_data }}/config"
|
|
- "{{ mosquitto_data }}/data"
|
|
- "{{ mosquitto_data }}/log"
|
|
|
|
- name: Make sure mosquitto config is there
|
|
template:
|
|
src: "templates/mosquitto.conf.j2"
|
|
dest: "{{ mosquitto_data }}/config/mosquitto.conf"
|
|
notify: restart_mosquitto
|
|
|
|
- name: Ensure mosquitto is running
|
|
docker_container:
|
|
name: mosquitto
|
|
image: "{{ mosquitto_image }}"
|
|
pull: true
|
|
state: started
|
|
ports:
|
|
- 1883:1883
|
|
- 9001:9001
|
|
volumes:
|
|
- "{{ mosquitto_data }}/config:/mosquitto/config"
|
|
- "{{ mosquitto_data }}/data:/mosquitto/data"
|
|
- "{{ mosquitto_data }}/log:/mosquitto/log"
|
|
detach: yes
|
|
keep_volumes: yes
|
|
restart_policy: unless-stopped
|
|
|
|
- name: Ensure the openhab directories exist
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- "{{ openhab_data }}/addons"
|
|
- "{{ openhab_data }}/conf"
|
|
- "{{ openhab_data }}/userdata"
|
|
|
|
- name: Clone or update configuration
|
|
git:
|
|
repo: "{{ openhab_configuration_source }}"
|
|
version: "{{ openhab_configuration_version }}"
|
|
dest: "{{ openhab_data }}/conf"
|
|
clone: yes
|
|
update: yes
|
|
|
|
- name: ensure openhab is up and running
|
|
docker_container:
|
|
name: openhab
|
|
image: "{{ openhab_image }}"
|
|
pull: true
|
|
state: started
|
|
detach: yes
|
|
interactive: yes
|
|
tty: yes
|
|
ports:
|
|
- "{{ openhab_host_port }}:8080"
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- "{{ openhab_data }}/addons:/openhab/addons:rw"
|
|
- "{{ openhab_data }}/conf:/openhab/conf:rw"
|
|
- "{{ openhab_data }}/userdata:/openhab/userdata:rw"
|
|
keep_volumes: yes
|
|
restart_policy: unless-stopped
|
|
env: EXTRA_JAVA_OPTS="-Duser.timezone=Europe/Berlin"
|
|
|
|
- name: Setup proxy site openhab.n39.eu
|
|
include_role:
|
|
name: setup-http-site-proxy
|
|
vars:
|
|
site_name: openhab.n39.eu
|
|
proxy_port: "{{ openhab_host_port }}"
|
|
|
|
- name: Ensure container for URI tools is running
|
|
docker_container:
|
|
name: uritools
|
|
image: mrtux/clean_uri
|
|
pull: true
|
|
state: started
|
|
detach: yes
|
|
ports:
|
|
- "{{ uritools_host_port }}:8080"
|
|
restart_policy: unless-stopped
|
|
|
|
- name: Setup proxy site uritools.n39.eu
|
|
include_role:
|
|
name: setup-http-site-proxy
|
|
vars:
|
|
site_name: uritools.n39.eu
|
|
proxy_port: "{{ uritools_host_port }}"
|
|
|
|
- name: Ensure container for entities validation service is running
|
|
docker_container:
|
|
name: entities_validation_svc
|
|
image: netz39/entities_validation_svc:v1.0.0
|
|
pull: true
|
|
state: started
|
|
detach: yes
|
|
ports:
|
|
- "{{ entities_validation_svc_host_port }}:8080"
|
|
restart_policy: unless-stopped
|
|
|
|
- name: Setup proxy site entities-validation.svc.n39.eu
|
|
include_role:
|
|
name: setup-http-site-proxy
|
|
vars:
|
|
site_name: entities-validation.svc.n39.eu
|
|
proxy_port: "{{ entities_validation_svc_host_port }}"
|
|
|
|
- name: Ensure container for shlink is running
|
|
docker_container:
|
|
name: shlink
|
|
image: shlinkio/shlink:2.6.2
|
|
pull: true
|
|
state: started
|
|
detach: yes
|
|
ports:
|
|
- "{{ shlink_host_port }}:8080"
|
|
restart_policy: unless-stopped
|
|
env:
|
|
SHORT_DOMAIN_HOST: "{{ shlink_domain_name }}"
|
|
SHORT_DOMAIN_SCHEMA: https
|
|
GEOLITE_LICENSE_KEY: "{{ shlink_geolite_license_key }}"
|
|
|
|
- name: Setup proxy site {{ shlink_domain_name }}
|
|
include_role:
|
|
name: setup-http-site-proxy
|
|
vars:
|
|
site_name: "{{ shlink_domain_name }}"
|
|
proxy_port: "{{ shlink_host_port }}"
|
|
|
|
handlers:
|
|
- name: restart mosquitto
|
|
docker_container:
|
|
name: mosquitto
|
|
state: started
|
|
restart: yes
|