From 6fd6d7659477e5d4c0d2a906b66043234822adc2 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Thu, 23 Oct 2025 11:37:24 +0300 Subject: [PATCH] Transcriber: rewrite deploy Same as homepage deploy Prepare for two-step deploy: - local build and fix local tag - deploy to remote server --- ...ose.yml.j2 => docker-compose.template.yml} | 3 +- playbook-transcriber-registry.yml | 21 ++++++ playbook-transcriber.yml | 65 ++++--------------- vars/transcriber.images.yml | 2 + vars/transcriber.yml | 15 +++++ 5 files changed, 54 insertions(+), 52 deletions(-) rename files/transcriber/{docker-compose.yml.j2 => docker-compose.template.yml} (83%) create mode 100644 playbook-transcriber-registry.yml create mode 100644 vars/transcriber.images.yml create mode 100644 vars/transcriber.yml diff --git a/files/transcriber/docker-compose.yml.j2 b/files/transcriber/docker-compose.template.yml similarity index 83% rename from files/transcriber/docker-compose.yml.j2 rename to files/transcriber/docker-compose.template.yml index fb69ff1..91af02c 100644 --- a/files/transcriber/docker-compose.yml.j2 +++ b/files/transcriber/docker-compose.template.yml @@ -1,9 +1,10 @@ services: transcriber_app: + # noinspection ComposeUnknownValues image: "{{ registry_transcriber_image }}" container_name: transcriber_app - user: '{{ user_create_result.uid }}:{{ user_create_result.group }}' + user: "{{ user_create_result.uid }}:{{ user_create_result.group }}" restart: unless-stopped volumes: - "{{ config_file }}:/config/config.toml:ro" diff --git a/playbook-transcriber-registry.yml b/playbook-transcriber-registry.yml new file mode 100644 index 0000000..968f4c1 --- /dev/null +++ b/playbook-transcriber-registry.yml @@ -0,0 +1,21 @@ +--- +- name: "Upload local transcriber images to registry" + hosts: all + gather_facts: no + + vars_files: + - vars/ports.yml + - vars/secrets.yml + - vars/transcriber.yml + - vars/transcriber.images.yml + + tasks: + + - name: "Push web service image to remote registry" + community.docker.docker_image: + state: present + source: local + name: "{{ transcriber_image }}" + repository: "{{ registry_transcriber_image }}" + push: true + delegate_to: 127.0.0.1 diff --git a/playbook-transcriber.yml b/playbook-transcriber.yml index 2a8d311..2f34913 100644 --- a/playbook-transcriber.yml +++ b/playbook-transcriber.yml @@ -5,23 +5,8 @@ vars_files: - vars/ports.yml - vars/secrets.yml - - - vars: - app_name: "transcriber" - app_user: "{{ app_name }}" - base_dir: "/home/{{ app_user }}" - - config_dir: "{{ (base_dir, 'config') | path_join }}" - config_file: "{{ (config_dir, 'config.toml') | path_join }}" - - data_dir: "{{ (base_dir, 'data') | path_join }}" - backups_dir: "{{ (base_dir, 'backups') | path_join }}" - - docker_registry_prefix: "cr.yandex/crplfk0168i4o8kd7ade" - - # transcriber_image: "{{ transcriber_image | default(omit) }}" - + - vars/transcriber.yml + - vars/transcriber.images.yml tasks: - name: "Create user and environment" @@ -55,38 +40,16 @@ ansible.builtin.script: cmd: "files/yandex-docker-registry-auth.sh" - - name: "Deploy service" - when: transcriber_image is defined - block: - # - name: "Check is web service image passed" - # ansible.builtin.assert: - # that: - # - "transcriber_image is defined" - # fail_msg: 'You must pass variable "transcriber_image"' + - name: "Copy docker compose file" + ansible.builtin.template: + src: "./files/{{ app_name }}/docker-compose.template.yml" + dest: "{{ base_dir }}/docker-compose.yml" + owner: "{{ app_user }}" + group: "{{ app_user }}" + mode: "0640" - - name: "Create full image name with container registry" - ansible.builtin.set_fact: - registry_transcriber_image: "{{ (docker_registry_prefix, transcriber_image) | path_join }}" - - - name: "Push web service image to remote registry" - community.docker.docker_image: - state: present - source: local - name: "{{ transcriber_image }}" - repository: "{{ registry_transcriber_image }}" - push: true - delegate_to: 127.0.0.1 - - - name: "Copy docker compose file" - ansible.builtin.template: - src: "./files/{{ app_name }}/docker-compose.yml.j2" - dest: "{{ base_dir }}/docker-compose.yml" - owner: "{{ app_user }}" - group: "{{ app_user }}" - mode: "0640" - - - name: "Run application with docker compose" - community.docker.docker_compose_v2: - project_src: "{{ base_dir }}" - state: "present" - remove_orphans: true + - name: "Run application with docker compose" + community.docker.docker_compose_v2: + project_src: "{{ base_dir }}" + state: "present" + remove_orphans: true diff --git a/vars/transcriber.images.yml b/vars/transcriber.images.yml new file mode 100644 index 0000000..2a416a6 --- /dev/null +++ b/vars/transcriber.images.yml @@ -0,0 +1,2 @@ +--- +transcriber_image: "" diff --git a/vars/transcriber.yml b/vars/transcriber.yml new file mode 100644 index 0000000..5f62033 --- /dev/null +++ b/vars/transcriber.yml @@ -0,0 +1,15 @@ +--- +app_name: "transcriber" +app_user: "{{ app_name }}" +base_dir: "/home/{{ app_user }}" + +config_dir: "{{ (base_dir, 'config') | path_join }}" +config_file: "{{ (config_dir, 'config.toml') | path_join }}" + +data_dir: "{{ (base_dir, 'data') | path_join }}" +backups_dir: "{{ (base_dir, 'backups') | path_join }}" + +docker_registry_prefix: "cr.yandex/crplfk0168i4o8kd7ade" + +# Registry images +registry_transcriber_image: "{{ (docker_registry_prefix, transcriber_image) | path_join }}"