From 8eb5e00c8c10a5dce1eee38674d49d407534dbaf Mon Sep 17 00:00:00 2001
From: Thomas Schneider <thomas@fsmpi.rwth-aachen.de>
Date: Sat, 17 Sep 2022 18:38:11 +0200
Subject: [PATCH] mysql: Add options to enable binlog

https://mariadb.com/kb/en/binary-log/
---
 mysql/defaults/main.yml   |  1 +
 mysql/files/override.conf |  2 ++
 mysql/handlers/main.yml   | 10 ++++++++++
 mysql/tasks/main.yml      | 21 +++++++++++++++++++++
 4 files changed, 34 insertions(+)
 create mode 100644 mysql/files/override.conf
 create mode 100644 mysql/handlers/main.yml

diff --git a/mysql/defaults/main.yml b/mysql/defaults/main.yml
index 38ce525..e687fb7 100644
--- a/mysql/defaults/main.yml
+++ b/mysql/defaults/main.yml
@@ -8,3 +8,4 @@ mysql_backup_user: "backup"
 mysql_backup_password: "{{ lookup('passwordstore', 'db/{{ ansible_hostname }}-mysql-backup create=true length=20') }}"
 
 mysql_rsnapshot: false
+mysql_enable_binlog: false
diff --git a/mysql/files/override.conf b/mysql/files/override.conf
new file mode 100644
index 0000000..4b46d21
--- /dev/null
+++ b/mysql/files/override.conf
@@ -0,0 +1,2 @@
+[Service]
+Environment=MYSQLD_OPTS=--log-bin
diff --git a/mysql/handlers/main.yml b/mysql/handlers/main.yml
new file mode 100644
index 0000000..1d24e32
--- /dev/null
+++ b/mysql/handlers/main.yml
@@ -0,0 +1,10 @@
+---
+
+- name: Reload systemd
+  systemd:
+    daemon_reload: true
+
+- name: Restart mariadb.service
+  systemd:
+    name: mariadb.service
+    state: restarted
diff --git a/mysql/tasks/main.yml b/mysql/tasks/main.yml
index 999f564..e55d746 100644
--- a/mysql/tasks/main.yml
+++ b/mysql/tasks/main.yml
@@ -62,3 +62,24 @@
       file:
         path: /etc/cron.d/mysql-snapshot
         state: absent
+
+- when: mysql_enable_binlog
+  block:
+    - name: Create mariadb.service override directory
+      file:
+        path: /etc/systemd/system/mariadb.service.d
+        state: directory
+        owner: root
+        group: root
+        mode: '0755'
+
+    - name: Enable binlog
+      copy:
+        src: override.conf
+        dest: /etc/systemd/system/mariadb.service.d/override.conf
+        owner: root
+        group: root
+        mode: '0644'
+      notify:
+        - Reload systemd
+        - Restart mariadb.service
-- 
GitLab