diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..78d7877 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: 2021 WTF Kooperative eG +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- +- name: docker-compose up -d for ki + become: true + ansible.builtin.command: + cmd: docker-compose up -d + chdir: /var/docker/ki +- name: docker-compose restart for ki + become: true + ansible.builtin.command: + cmd: docker-compose restart + chdir: /var/docker/ki \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index 327dbef..f93062b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -3,10 +3,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later --- -- name: be sure the ki network exists - community.general.docker_network: - name: ki - - name: "be sure the {{ item }} volume exists" docker_volume: name: "{{ item }}" @@ -14,66 +10,42 @@ - ki_data - ki_db -- name: be sure the ki config directory exists +- name: be sure the ki docker directory exists become: true file: - path: /etc/ki + path: /var/docker/ki state: directory owner: root group: root mode: "0755" +- name: be sure the ki config directory exists + become: true + file: + path: /var/docker/ki/data + state: directory + owner: root + group: root + mode: "0755" + +- name: docker-compose file for services + become: true + ansible.builtin.template: + src: docker-compose.yml.j2 + dest: /var/docker/ki/docker-compose.yml + owner: root + group: root + mode: "0644" + notify: + - docker-compose up -d for ki + - name: be sure the ki-frontend config file is in place become: true template: src: frontend.js - dest: /etc/ki/frontend.js + dest: /var/docker/ki/data/frontend.js owner: root group: root mode: "0655" - -- name: be sure the ki_database container is running - community.general.docker_container: - name: ki_db - image: "{{ ki_db_image }}" - pull: no - restart_policy: unless-stopped - env: - MYSQL_ROOT_PASSWORD: "{{ ki_db_root_password }}" - MYSQL_DATABASE: ki - MYSQL_USER: ki - MYSQL_PASSWORD: "{{ ki_db_password }}" - volumes: - - ki_db:/var/lib/mysql/ - networks: - - name: ki - -- name: be sure the ki_backend container is running - community.general.docker_container: - name: ki_backend - image: "{{ ki_backend_image }}" - pull: yes - restart_policy: unless-stopped - env: - SQLALCHEMY_DATABASE_URI: "mariadb+pymysql://ki:{{ ki_db_password }}@ki_db:3306/ki" - FLASK_ENV: "development" - KI_LOGLEVEL: "10" - KI_AUTH: "file" - CORS_ORIGINS: "{{ ki_frontend_uri }}" - ports: - - "{{ ki_backend_port }}:5000" - volumes: - - ki_data:/app/data/ - networks: - - name: ki - -- name: be sure the ki_frontend container is running - community.general.docker_container: - name: ki_frontend - image: "{{ ki_frontend_image }}" - pull: yes - restart_policy: unless-stopped - ports: - - "{{ ki_frontend_port }}:80" - volumes: - - /etc/ki/frontend.js:/usr/share/nginx/html/config.js + notify: + - docker-compose restart for ki diff --git a/templates/docker-compose.yml.j2 b/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..883b55e --- /dev/null +++ b/templates/docker-compose.yml.j2 @@ -0,0 +1,42 @@ +# Deployed through Ansible +version: '3' +services: + ki_db: + image: {{ ki_db_image }} + restart: unless-stopped + environment: + - "MYSQL_ROOT_PASSWORD={{ ki_db_root_password }}" + - "MYSQL_DATABASE=ki" + - "MYSQL_USER=ki" + - "MYSQL_PASSWORD={{ ki_db_password }}" + volumes: + - ki_db:/var/lib/mysql/ + networks: + - ki + ki_backend: + image: {{ ki_backend_image }} + restart: unless-stopped + environment: + - "SQLALCHEMY_DATABASE_URI=mariadb+pymysql://ki:{{ ki_db_password }}@ki_db:3306/ki" + - "FLASK_ENV=development" + - "KI_LOGLEVEL=10" + - "KI_AUTH=file" + - "CORS_ORIGINS={{ ki_frontend_uri }}" + ports: + - "127.0.0.1:{{ ki_backend_port }}:5000" + volumes: + - ki_data:/app/data/ + networks: + - ki + ki_frontend: + image: {{ ki_frontend_image }} + restart: unless-stopped + ports: + - "127.0.0.1:{{ ki_frontend_port }}:80" + volumes: + - ./data/frontend.js:/usr/share/nginx/html/config.js + networks: + - default +networks: + default: {} + ki: {} \ No newline at end of file