From 7b49a5b5b60160470bb30c0904748070c190e467 Mon Sep 17 00:00:00 2001 From: Christian Elberfeld <6413499+elberfeld@users.noreply.github.com> Date: Thu, 30 May 2024 21:48:10 +0200 Subject: [PATCH] Initiale Tandoor instanz auf dem Testserver #43 --- site.yml | 6 +++ testserver/docker_tandoor/Documentation.md | 4 ++ testserver/docker_tandoor/tasks/main.yml | 40 +++++++++++++++ .../templates/docker-compose.yml | 49 +++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 testserver/docker_tandoor/Documentation.md create mode 100644 testserver/docker_tandoor/tasks/main.yml create mode 100644 testserver/docker_tandoor/templates/docker-compose.yml diff --git a/site.yml b/site.yml index 9a2135e5..4a721d3c 100644 --- a/site.yml +++ b/site.yml @@ -60,6 +60,12 @@ basedir: "/srv/{{ servicename }}", domain: "verwaltung.test-warpzone.de" } + - { + role: testserver/docker_tandoor, tags: [ test_tandoor, docker_services ], + servicename: "tandoor", + basedir: "/srv/{{ servicename }}", + domain: "tandoor.test-warpzone.de" + } ################################################## diff --git a/testserver/docker_tandoor/Documentation.md b/testserver/docker_tandoor/Documentation.md new file mode 100644 index 00000000..074a7865 --- /dev/null +++ b/testserver/docker_tandoor/Documentation.md @@ -0,0 +1,4 @@ + +After initial Setup, the initial superuser 'tandooradmin' must be created in the unser interface. +The Password is stored on the Server in the file ```secrets/tandooradmin_user_pass``` within the data directory. + diff --git a/testserver/docker_tandoor/tasks/main.yml b/testserver/docker_tandoor/tasks/main.yml new file mode 100644 index 00000000..28fc83e7 --- /dev/null +++ b/testserver/docker_tandoor/tasks/main.yml @@ -0,0 +1,40 @@ +--- + +- include_tasks: ../functions/get_secret.yml + with_items: + - { path: "{{ basedir }}/secrets/secret_key", length: 32 } + - { path: "{{ basedir }}/secrets/postgres_user_pass", length: 24 } + - { path: "{{ basedir }}/secrets/tandooradmin_user_pass", length: 24 } + + +- name: "create folder struct for {{ servicename }}" + file: + path: "{{ item }}" + state: "directory" + with_items: + - "{{ basedir }}" + - "{{ basedir }}/secrets" + - "{{ basedir }}/db" + - "{{ basedir }}/staticfiles" + - "{{ basedir }}/mediafiles" + + +- name: "deploy {{ servicename }} config files" + template: + dest: "{{ basedir }}/{{ item }}" + src: "{{ item }}" + with_items: + - docker-compose.yml + register: config + + +- name: "stop {{ servicename }} docker" + community.docker.docker_compose_v2: + project_src: "{{ basedir }}" + state: absent + when: config.changed + +- name: "start {{ servicename }} docker" + community.docker.docker_compose_v2: + project_src: "{{ basedir }}" + state: present diff --git a/testserver/docker_tandoor/templates/docker-compose.yml b/testserver/docker_tandoor/templates/docker-compose.yml new file mode 100644 index 00000000..68a281de --- /dev/null +++ b/testserver/docker_tandoor/templates/docker-compose.yml @@ -0,0 +1,49 @@ + +services: + + + db: + + image: postgres:16-alpine + restart: always + volumes: + - "{{ basedir }}/db:/var/lib/postgresql/data" + environment: + POSTGRES_DB: tandoor + POSTGRES_PORT: 5432 + POSTGRES_USER: tandoor + POSTGRES_PASSWORD: "{{ postgres_user_pass }}" + networks: + - default + + + app: + + restart: always + image: vabene1111/recipes:latest + depends_on: + - db + volumes: + - "{{ basedir }}/staticfiles:/opt/recipes/staticfiles" + - "{{ basedir }}/mediafiles:/opt/recipes/mediafiles" + environment: + SECRET_KEY: {{ secret_key }} + DB_ENGINE: django.db.backends.postgresql + POSTGRES_HOST: db + POSTGRES_DB: tandoor + POSTGRES_PORT: 5432 + POSTGRES_USER: tandoor + POSTGRES_PASSWORD: "{{ postgres_user_pass }}" + labels: + - traefik.enable=true + - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`) + - traefik.http.routers.{{ servicename }}.entrypoints=websecure + - traefik.http.services.{{ servicename }}.loadbalancer.server.port=8080 + networks: + - default + - web + + +networks: + web: + external: true -- GitLab