diff --git a/.gitea/workflows/add-new-service.yml b/.gitea/workflows/add-new-service.yml index edd35a1..3c3af1a 100644 --- a/.gitea/workflows/add-new-service.yml +++ b/.gitea/workflows/add-new-service.yml @@ -26,5 +26,5 @@ jobs: run: | ansible-playbook ansible/playbooks/add-new-service.yml \ -i ansible/hosts.yml \ - --extra-vars="agebd_env=dev service_dir_name=${{ steps.parse_branch.outputs.service_name }}" \ + --extra-vars="repo_root=${{ github.workspace }} agebd_env=dev service_dir_name=${{ steps.parse_branch.outputs.service_name }}" \ -v \ No newline at end of file diff --git a/ansible/playbooks/add-new-service.yml b/ansible/playbooks/add-new-service.yml index 6b50a06..ae79b00 100644 --- a/ansible/playbooks/add-new-service.yml +++ b/ansible/playbooks/add-new-service.yml @@ -14,6 +14,9 @@ import_playbook: ../plays/ioc/ioc-restart.yml - name: Deploy and Restart Master Service + vars: + ioc_service_name: 000-master + branch_name: "feature/add-service-{{ new_service_dir_name }}" import_playbook: ../plays/service/service-deploy-and-restart-master.yml # - name: Install and Restart New IOC diff --git a/ansible/plays/service/service-deploy-and-restart.yml b/ansible/plays/service/service-deploy-and-restart.yml index 55ba3d9..1351435 100644 --- a/ansible/plays/service/service-deploy-and-restart.yml +++ b/ansible/plays/service/service-deploy-and-restart.yml @@ -3,8 +3,21 @@ hosts: sls-vserv-bd-hla01-dev # connection: local gather_facts: false + + vars: + workspace_dir: "/tmp/hla_framework_bd" tasks: + # TODO: can remove when running on runner + - name: Clone this repository + ansible.builtin.git: + repo: "git@gitea.psi.ch:sls/hla_framework_bd.git" + dest: "{{ workspace_dir }}" + version: main + accept_hostkey: true + version: "{{ branch_name }}" + force: true + - name: Initialize isolated service directory name ansible.builtin.set_fact: # Uses ioc_service_name if defined in vars, otherwise falls back to the CLI extra-vars @@ -18,15 +31,19 @@ service_unit_name: "AGEBD-SERVICE-{{ service_dir_name[4:] | upper }}.service" - name: "[{{ service_dir_name }}] Ensure target directory structure exists" - ansible.builtin.file: - path: "{{ svc_current_dir }}" - state: directory + # ansible.builtin.file: + # path: "{{ svc_current_dir }}" + # state: directory + ansible.builtin.shell: | + mkdir -p "{{ svc_current_dir }}" - name: "[{{ service_dir_name }}] Sync service deployment files" - ansible.builtin.copy: - src: "{{ playbook_dir }}/../../../services/{{ service_dir_name }}/current/" - dest: "{{ svc_current_dir }}/" - mode: 'preserve' + # ansible.builtin.copy: + # src: "{{ playbook_dir }}/../../../services/{{ service_dir_name }}/current/" + # dest: "{{ svc_current_dir }}/" + # mode: 'preserve' + ansible.builtin.shell: | + copy -r "{{ repo_root }}/services/{{ service_dir_name }}/current/" "{{ svc_current_dir }}" - name: "[{{ service_dir_name }}] Substitute environment variable inline" ansible.builtin.replace: diff --git a/docs/ansible.md b/docs/ansible.md index 7a1e4e8..df3ffd8 100644 --- a/docs/ansible.md +++ b/docs/ansible.md @@ -8,6 +8,6 @@ Set vars on command line: cd ansible ansible-playbook ansible/playbooks/add-new-service.yml \ -i ansible/hosts.yml \ - --extra-vars="agebd_env=dev new_service_dir_name=" \ + --extra-vars=""repo_root=${{ github.workspace }} agebd_env=dev new_service_dir_name=" \ -v ``` \ No newline at end of file