Add Krawfish Playbook

Change-Id: I7f7439b362284c9022364daed2a178ac1af00391
diff --git a/deploy-krawfish.yml b/deploy-krawfish.yml
new file mode 100644
index 0000000..90d2485
--- /dev/null
+++ b/deploy-krawfish.yml
@@ -0,0 +1,56 @@
+- name: Deploy Krawfish
+  hosts:
+    10.0.10.57
+    10.0.10.58
+    10.0.10.59
+  user: korap
+  serial: 1
+  tasks:
+    - name: Save docker image
+      local_action: ansible.builtin.command docker save korap/krawfish:latest -o ./krawfish-latest.tar
+    - name: Copy docker image to hosts
+      ansible.builtin.copy:
+        src: ./krawfish-latest.tar
+        dest: /opt/korap/krawfish/krawfish-latest.tar
+        mode: '0644'
+    - name: Load docker images on hosts
+      ansible.builtin.command: docker load -i /opt/korap/krawfish/krawfish-latest.tar
+    - name: Get UID for KorAP user
+      getent:
+        database: passwd
+        key: korap
+    - name: Gracefully stop and remove old docker container, if existing
+      community.docker.docker_container:
+        state: "absent"
+        name: krawfish
+        recreate: true
+        keep_volumes: true
+        comparisons:
+          image: ignore   # do not restart containers with older versions of the image
+    - name: Restart docker container
+      community.docker.docker_container:
+        image: korap/krawfish:latest
+        restart_policy: "unless-stopped"
+        # pull: true
+        name: krawfish
+        user: "{{ ansible_facts.getent_passwd[\"korap\"].1 }}"
+        init: true
+        detach: true
+        mounts:
+          - type: bind
+            source: "/opt/korap/krawfish/log"
+            target: "/log"
+          - type: bind
+            source: "/opt/korap/krawfish/index"
+            target: "/index"
+          - type: bind
+            read_only: true
+            source: "/opt/korap/krawfish/conf.yml"
+            target: "/conf.yml"
+        ports:
+          - "9328:9328"
+          - "9329:9329"
+          - "9587:9587"
+        command: ["-c", "conf.yml"]
+        comparisons:
+          image: ignore   # do not restart containers with older versions of the image