Pārlūkot izejas kodu

add ceph-ensure-mount service

Josh Bicking 4 gadi atpakaļ
vecāks
revīzija
6d93cbd2ce
2 mainītis faili ar 38 papildinājumiem un 0 dzēšanām
  1. 18 0
      roles/basic/tasks/main.yml
  2. 20 0
      templates/basic/ceph-ensure-mount.service

+ 18 - 0
roles/basic/tasks/main.yml

@@ -45,3 +45,21 @@
     warn: False  # Calls to uname
 
 # TODO mount the ceph cluster
+
+- name: Install ceph-ensure-mount service
+  copy:
+    src: templates/basic/ceph-ensure-mount.service
+    dest: /etc/systemd/system/ceph-ensure-mount.service
+    mode: "0700"
+    owner: root
+    group: root
+
+- name: systemd daemon-reload
+  ansible.builtin.systemd:
+    daemon_reload: yes
+
+- name: Enable ceph-ensure-mount service
+  ansible.builtin.systemd:
+    name: ceph-ensure-mount
+    state: started
+    enabled: yes

+ 20 - 0
templates/basic/ceph-ensure-mount.service

@@ -0,0 +1,20 @@
+# A service that calls 'mount -a' until success
+# 
+# Since neither systemd-mount or the ceph mount module have retry logic, this ensure CephFS is
+# is mounted at boot time.  
+#  See https://github.com/systemd/systemd/issues/4468#issuecomment-453386363
+
+[Unit]
+Description=Ensure the ceph mount succeeds
+Requires=ceph.target
+StartLimitInterval=200
+StartLimitBurst=20
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/mount -a
+Restart=on-failure
+RestartSec=30
+
+[Install]
+WantedBy=multi-user.target