From 43b0f20a0d4514723d4b815db95875bdfda6a8e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Sachse?= <joerg.sachse@slub-dresden.de>
Date: Fri, 9 Sep 2022 15:54:59 +0200
Subject: [PATCH] fix: deploy Oracle monitoring plugins correctly, cleanup old
 locations

---
 files/etc/check_mk/sqlnet.ora                 | 11 +++++
 .../oracle/install_checkmk_plugins_oracle.yml | 45 ++++++++++++++++++-
 2 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100755 files/etc/check_mk/sqlnet.ora

diff --git a/files/etc/check_mk/sqlnet.ora b/files/etc/check_mk/sqlnet.ora
new file mode 100755
index 0000000..7c30d0b
--- /dev/null
+++ b/files/etc/check_mk/sqlnet.ora
@@ -0,0 +1,11 @@
+LOG_DIRECTORY_CLIENT = /var/log/check_mk/oracle_client
+DIAG_ADR_ENABLED = OFF
+
+SQLNET.WALLET_OVERRIDE = FALSE
+WALLET_LOCATION =
+ (SOURCE=
+  (METHOD = FILE)
+  (METHOD_DATA = (DIRECTORY=/etc/check_mk/oracle_wallet))
+ )
+
+
diff --git a/tasks/oracle/install_checkmk_plugins_oracle.yml b/tasks/oracle/install_checkmk_plugins_oracle.yml
index 5327aca..92d60ca 100644
--- a/tasks/oracle/install_checkmk_plugins_oracle.yml
+++ b/tasks/oracle/install_checkmk_plugins_oracle.yml
@@ -1,4 +1,15 @@
 ---
+- name: delete legacy directory for self-developed Check_MK plugins (they were in the wrong location)
+  ansible.builtin.file:
+    path: "/usr/lib/check_mk_agent/nrpe"
+    state: absent
+
+- name: create directory for self-developed Check_MK plugins
+  ansible.builtin.file:
+    path: "/usr/lib/check_mk_agent/local/3600/"
+    state: directory
+    mode: "0755"
+
 - name: install self-developed Check_MK plugins for Oracle
   ansible.builtin.copy:
     src: "usr/lib/check_mk_agent/local/3600/{{ item }}"
@@ -9,8 +20,25 @@
   loop:
     - "check_oracle_db_segment_size.sh"
     - "check_oracle_db_table_integrity.sh"
+  register: cmk_plugins
+
+- name: find cache files for local Check_MK checks
+  ansible.builtin.find:
+    path: "/var/lib/check_mk_agent/cache"
+    pattern: "local_*.cache"
+  register: cachefiles
+
+- name: >
+    delete cache files for local Check_MK checks, so when the new plugins run
+    for the first time, they produce fresh data
+  ansible.builtin.file:
+    path: "{{ item.path }}"
+    state: absent
+  loop: "{{ cachefiles.files }}"
+  when: cmk_plugins.changed    # noqa no-handler
 
-# get vendor plugins straight from monitoring server to make sure we get the latest version
+# get vendor plugins straight from monitoring server to make sure we get the
+# latest version
 - name: install vendor Check_MK plugins for Oracle
   ansible.builtin.get_url:
     url: "https://cmk.slub-dresden.de/slubmon/check_mk/agents/plugins/{{ item }}"
@@ -20,3 +48,18 @@
     mode: "0755"
   loop:
     - "mk_oracle"
+
+- name: configure vendor Check_MK plugin for Oracle
+  ansible.builtin.lineinfile:
+    path: "/etc/check_mk/mk_oracle.cfg"
+    line: "DBUSER={{ vault_oracle_user_nagios.name }}:{{ vault_oracle_user_nagios.pass }}"
+    owner: "root"
+    group: "root"
+    mode: "0640"
+    create: true
+
+- name: deploy sqlnet.ora
+  ansible.builtin.copy:
+    src: "etc/check_mk/sqlnet.ora"
+    dest: "/etc/check_mk/sqlnet.ora"
+    mode: "0644"
-- 
GitLab