|
| 1 | +--- |
| 2 | +- name: Install rsync |
| 3 | + package: |
| 4 | + name: rsync |
| 5 | +- name: Install pip |
| 6 | + package: |
| 7 | + name: python3-pip |
| 8 | +- name: Install podman |
| 9 | + package: |
| 10 | + name: podman |
| 11 | +- name: Stop systemd service for "{{ instance_name }}" |
| 12 | + service: |
| 13 | + name: "{{ instance_name }}" |
| 14 | + state: stopped |
| 15 | + ignore_errors: yes |
| 16 | +- name: Stop podman instance |
| 17 | + containers.podman.podman_container: |
| 18 | + name: "{{ instance_name }}" |
| 19 | + state: absent |
| 20 | +- name: Create patchew data folder |
| 21 | + file: |
| 22 | + path: "{{ data_dir }}" |
| 23 | + state: directory |
| 24 | +- name: Copy source |
| 25 | + synchronize: |
| 26 | + src: ../../../ |
| 27 | + dest: "{{ src_dir }}" |
| 28 | + recursive: true |
| 29 | + group: no |
| 30 | + owner: no |
| 31 | + delete: yes |
| 32 | + rsync_opts: |
| 33 | + - "--exclude=__pycache__" |
| 34 | + - "--exclude=*.pyc" |
| 35 | + - "--exclude=*.pyo" |
| 36 | + - "--exclude=*.sw*" |
| 37 | + - "--exclude=/venv" |
| 38 | +- name: Check for existing backup image |
| 39 | + containers.podman.podman_image_info: |
| 40 | + name: "patchew:{{ instance_name }}-prev" |
| 41 | + register: prev_image |
| 42 | +- name: Delete old podman image stash |
| 43 | + shell: "podman untag 'patchew:{{ instance_name }}-prev'" |
| 44 | + when: prev_image.images |
| 45 | +- name: Check for existing image |
| 46 | + containers.podman.podman_image_info: |
| 47 | + name: "patchew:{{ instance_name }}" |
| 48 | + register: current_image |
| 49 | +- name: Stash podman image |
| 50 | + containers.podman.podman_tag: |
| 51 | + image: "patchew:{{ instance_name }}" |
| 52 | + target_names: "patchew:{{ instance_name }}-prev" |
| 53 | + when: current_image.images |
| 54 | +- name: Rebuild podman image |
| 55 | + # docker_image module wants a file named Dockerfile |
| 56 | + shell: "podman build -t 'patchew:{{ instance_name }}' -f '{{ src_dir }}/scripts/dockerfiles/{{ instance_role }}.docker' '{{ src_dir }}'" |
| 57 | +- name: Install systemd service |
| 58 | + template: |
| 59 | + src: "templates/podman.service.j2" |
| 60 | + dest: "/etc/systemd/system/{{ instance_name }}.service" |
| 61 | +- name: Systemd daemon reload |
| 62 | + systemd: |
| 63 | + daemon_reload: yes |
| 64 | +- name: Start podman instance |
| 65 | + service: |
| 66 | + name: "{{ instance_name }}" |
| 67 | + state: restarted |
| 68 | + enabled: yes |
0 commit comments