DEV-271: added systemd-file as workaround for hazzle with container start order

master
Görz, Friedrich 4 years ago committed by Ketelsen, Sven
parent e6c74d9037
commit 820b162b15

@ -52,6 +52,15 @@
tags: tags:
- update_config - update_config
# work around for DEV-271("container start failure after reboot")
- name: Ensure systemd file
template:
src: harbor-systemd.service.j2
dest: /etc/systemd/system/harbor.service
owner: root
group: root
mode: 0755
- name: Ensure config files are populated from from templates/harbor - name: Ensure config files are populated from from templates/harbor
copy: copy:
src: "{{ item.src }}" src: "{{ item.src }}"
@ -64,16 +73,34 @@
tags: tags:
- update_config - update_config
- name: "Check if harbor tarball exists"
stat:
path: '{{ service_base_path }}/{{ inventory_hostname }}/harbor-offline-installer-{{ harbor_version }}.tgz'
register: harbor_tarball
- name: Download harbor offline installer - name: Download harbor offline installer
ansible.builtin.get_url: ansible.builtin.get_url:
url: https://github.com/goharbor/harbor/releases/download/{{ harbor_version }}/harbor-offline-installer-{{ harbor_version }}.tgz url: https://github.com/goharbor/harbor/releases/download/{{ harbor_version }}/harbor-offline-installer-{{ harbor_version }}.tgz
dest: "{{ service_base_path }}/{{ inventory_hostname }}/harbor-offline-installer-{{ harbor_version }}.tgz" dest: "{{ service_base_path }}/{{ inventory_hostname }}/harbor-offline-installer-{{ harbor_version }}.tgz"
when:
- not harbor_tarball.stat.exists
- name: "Check if {{ inventory_hostname }}/harbor/docker-compose.yml exists"
stat:
path: '{{ service_base_path }}/{{ inventory_hostname }}/harbor/docker-compose.yml'
register: harbor_installation
- name: Extract harbor-offline-installer-{{ harbor_version }}.tgz into {{ service_base_path }}/{{ inventory_hostname }} - name: Extract harbor-offline-installer-{{ harbor_version }}.tgz into {{ service_base_path }}/{{ inventory_hostname }}
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "{{ service_base_path }}/{{ inventory_hostname }}/harbor-offline-installer-{{ harbor_version }}.tgz" src: "{{ service_base_path }}/{{ inventory_hostname }}/harbor-offline-installer-{{ harbor_version }}.tgz"
dest: "{{ service_base_path }}/{{ inventory_hostname }}" dest: "{{ service_base_path }}/{{ inventory_hostname }}"
remote_src: yes remote_src: yes
when:
- not harbor_installation.stat.exists
- name: "Check if {{ inventory_hostname }}/harbor/docker-compose.yml exists" - name: "Check if {{ inventory_hostname }}/harbor/docker-compose.yml exists"
stat: stat:
@ -82,11 +109,9 @@
tags: tags:
- update_deployment - update_deployment
- name: "Stop {{ inventory_hostname }}" - name: "Ensure harbor is running"
shell: docker-compose down systemd:
args: name: harbor
chdir: '{{ service_base_path }}/{{ inventory_hostname }}/harbor' enabled: yes
when: check_docker_compose_file.stat.exists state: started
ignore_errors: yes daemon_reload: yes
tags:
- update_deployment

@ -0,0 +1,21 @@
#
# there is an issue of start order after e.g. rebooting the VM
# https://github.com/goharbor/harbor/issues/7008
# work around via adding systemd file
#
#
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f {{ service_base_path }}/{{ inventory_hostname }}/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f {{ service_base_path }}/{{ inventory_hostname }}/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
Loading…
Cancel
Save