From cb60b201718c18cb3b8bb96517f533375b22d1fc Mon Sep 17 00:00:00 2001 From: ngyimesi <norbi@gyimesiek.hu> Date: Thu, 15 Sep 2022 01:28:09 +0200 Subject: [PATCH] Linstor controller HA --- files/linstor-client.conf | 2 ++ files/linstor_db.toml | 4 +++ files/override.conf | 5 +++ files/var-lib-linstor.mount | 7 ++++ tasks/linstor-setup.yml | 65 +++++++++++++++++++++++++++++++++++-- 5 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 files/linstor-client.conf create mode 100644 files/linstor_db.toml create mode 100644 files/override.conf create mode 100644 files/var-lib-linstor.mount diff --git a/files/linstor-client.conf b/files/linstor-client.conf new file mode 100644 index 0000000..e9e805a --- /dev/null +++ b/files/linstor-client.conf @@ -0,0 +1,2 @@ +[global] +controllers=10.0.42.101,10.0.42.102,10.0.42.103 diff --git a/files/linstor_db.toml b/files/linstor_db.toml new file mode 100644 index 0000000..53b030b --- /dev/null +++ b/files/linstor_db.toml @@ -0,0 +1,4 @@ +[[promoter]] +id = "linstor_db" +[promoter.resources.linstor_db] +start = ["var-lib-linstor.mount", "linstor-controller.service"] diff --git a/files/override.conf b/files/override.conf new file mode 100644 index 0000000..064bac4 --- /dev/null +++ b/files/override.conf @@ -0,0 +1,5 @@ +[Service] +Environment=LS_KEEP_RES=linstor_db +Type=notify +TimeoutStartSec=infinity + diff --git a/files/var-lib-linstor.mount b/files/var-lib-linstor.mount new file mode 100644 index 0000000..5f78133 --- /dev/null +++ b/files/var-lib-linstor.mount @@ -0,0 +1,7 @@ +[Unit] +Description=Filesystem for the LINSTOR controller + +[Mount] +# you can use the minor like /dev/drbdX or the udev symlink +What=/dev/drbd/by-res/linstor_db/0 +Where=/var/lib/linstor \ No newline at end of file diff --git a/tasks/linstor-setup.yml b/tasks/linstor-setup.yml index 8faae15..81120f9 100644 --- a/tasks/linstor-setup.yml +++ b/tasks/linstor-setup.yml @@ -17,6 +17,7 @@ - linstor-satellite - linstor-client - linstor-proxmox + - drbd-reactor state: present - name: Enable linstor-satellite @@ -28,5 +29,65 @@ - name: Disable linstor-controller systemd: service: linstor-controller - state: stopped - enabled: no \ No newline at end of file + enabled: no + +- name: copy latest binary of linstor-defaults + get_url: + url: https://git.sch.bme.hu/kszk/sysadmin/memory-storage-defaults/-/jobs/artifacts/master/raw/memory-defaults?job=build + dest: /usr/local/bin/memory-defaults + mode: 0755 +- name: copy linstor-defaults config + copy: + dest: /etc/memory-defaults.yaml + src: memory-defaults.yaml + +- name: add systemd unit 1 + get_url: + url: https://git.sch.bme.hu/kszk/sysadmin/memory-storage-defaults/-/raw/master/systemd/memory-defaults.service + dest: /etc/systemd/system/memory-defaults.service + +- name: add systemd unit 2 (timer) + get_url: + url: https://git.sch.bme.hu/kszk/sysadmin/memory-storage-defaults/-/raw/master/systemd/memory-defaults.timer + dest: /etc/systemd/system/memory-defaults.timer + +- name: start systemd timer (unit 2) + systemd: + state: started + enabled: yes + name: memory-defaults.timer + +- name: create var-lib-linstor.mount + copy: + src: var-lib-linstor.mount + dest: /etc/systemd/system/var-lib-linstor.mount + +- name: copy linstor_db.toml + copy: + src: linstor_db.toml + dest: /etc/drbd-reactor.d/linstor_db.toml + +- name: create directory for override config so that the next task won't complain... + file: + path: /etc/systemd/system/linstor-satellite.service.d/ + state: directory + +- name: copy systemd override for linstor-satellite + copy: + src: override.conf + dest: /etc/systemd/system/linstor-satellite.service.d/override.conf + +- name: Reload systemd daemon + systemd: + daemon_reload: yes + +- name: Enable and restart drbd-reactor + systemd: + name: drbd-reactor + state: restarted + enabled: yes + +- name: create linstor client config + copy: + src: linstor-client.conf + dest: /etc/linstor/linstor-client.conf -- GitLab