From 39f7a36a5bbdb312e776db8516e694b7b2c375ff Mon Sep 17 00:00:00 2001 From: Kevin Ledesma Date: Tue, 29 Oct 2024 12:14:48 -0300 Subject: [PATCH] Preserve status of wazuh-indexer on upgrade (#498) * Update pre and post inst scripts for deb and rpm to store and restore service status * Update prerm script to avoid stopping the service on upgrade * Remove extra spaces and update rpm restart command --- distribution/packages/src/deb/debian/postinst | 13 ++++++-- distribution/packages/src/deb/debian/preinst | 4 +++ distribution/packages/src/deb/debian/prerm | 33 ++++++++++++------- .../packages/src/rpm/wazuh-indexer.rpm.spec | 10 ++++++ 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/distribution/packages/src/deb/debian/postinst b/distribution/packages/src/deb/debian/postinst index 4541f924534df..c523ffa260091 100644 --- a/distribution/packages/src/deb/debian/postinst +++ b/distribution/packages/src/deb/debian/postinst @@ -19,7 +19,7 @@ data_dir=/var/lib/wazuh-indexer log_dir=/var/log/wazuh-indexer pid_dir=/run/wazuh-indexer tmp_dir=/var/log/wazuh-indexer/tmp - +restart_service=/tmp/wazuh-indexer.restart # Create needed directories mkdir -p ${tmp_dir} @@ -46,6 +46,15 @@ if command -v systemd-tmpfiles > /dev/null; then systemd-tmpfiles --create wazuh-indexer.conf fi +if [ -f $restart_service ]; then + rm -f $restart_service + echo "Restarting wazuh-indexer service..." + if command -v systemctl > /dev/null; then + systemctl restart wazuh-indexer.service > /dev/null 2>&1 + fi + exit 0 +fi + # Messages echo "### NOT starting on installation, please execute the following statements to configure wazuh-indexer service to start automatically using systemd" echo " sudo systemctl daemon-reload" @@ -54,5 +63,3 @@ echo "### You can start wazuh-indexer service by executing" echo " sudo systemctl start wazuh-indexer.service" exit 0 - - diff --git a/distribution/packages/src/deb/debian/preinst b/distribution/packages/src/deb/debian/preinst index 2cf7ea70a7466..e36f94b197b5d 100644 --- a/distribution/packages/src/deb/debian/preinst +++ b/distribution/packages/src/deb/debian/preinst @@ -13,10 +13,14 @@ set -e echo "Running Wazuh Indexer Pre-Installation Script" +# Reference to restore actual service status +restart_service=/tmp/wazuh-indexer.restart + # Stop existing service if command -v systemctl >/dev/null && systemctl is-active wazuh-indexer.service >/dev/null; then echo "Stop existing wazuh-indexer.service" systemctl --no-reload stop wazuh-indexer.service + touch $restart_service fi if command -v systemctl >/dev/null && systemctl is-active wazuh-indexer-performance-analyzer.service >/dev/null; then echo "Stop existing wazuh-indexer-performance-analyzer.service" diff --git a/distribution/packages/src/deb/debian/prerm b/distribution/packages/src/deb/debian/prerm index a5222b2caae40..f92bbfcf3b69f 100644 --- a/distribution/packages/src/deb/debian/prerm +++ b/distribution/packages/src/deb/debian/prerm @@ -11,16 +11,27 @@ set -e -echo "Running Wazuh Indexer Pre-Removal Script" - -# Stop existing service -if command -v systemctl >/dev/null && systemctl is-active wazuh-indexer.service >/dev/null; then - echo "Stop existing wazuh-indexer.service" - systemctl --no-reload stop wazuh-indexer.service -fi -if command -v systemctl >/dev/null && systemctl is-active wazuh-indexer-performance-analyzer.service >/dev/null; then - echo "Stop existing wazuh-indexer-performance-analyzer.service" - systemctl --no-reload stop wazuh-indexer-performance-analyzer.service -fi +case "$1" in + upgrade|deconfigure) + ;; + remove) + echo "Running Wazuh Indexer Pre-Removal Script" + # Stop existing service + if command -v systemctl >/dev/null && systemctl is-active wazuh-indexer.service >/dev/null; then + echo "Stop existing wazuh-indexer.service" + systemctl --no-reload stop wazuh-indexer.service + fi + if command -v systemctl >/dev/null && systemctl is-active wazuh-indexer-performance-analyzer.service >/dev/null; then + echo "Stop existing wazuh-indexer-performance-analyzer.service" + systemctl --no-reload stop wazuh-indexer-performance-analyzer.service + fi + ;; + failed-upgrade) + ;; + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac exit 0 diff --git a/distribution/packages/src/rpm/wazuh-indexer.rpm.spec b/distribution/packages/src/rpm/wazuh-indexer.rpm.spec index 9549893bd3ee8..e460631679888 100644 --- a/distribution/packages/src/rpm/wazuh-indexer.rpm.spec +++ b/distribution/packages/src/rpm/wazuh-indexer.rpm.spec @@ -162,6 +162,7 @@ set -e if command -v systemctl >/dev/null && systemctl is-active %{name}.service >/dev/null; then echo "Stop existing %{name}.service" systemctl --no-reload stop %{name}.service + touch %{tmp_dir}/wazuh-indexer.restart fi if command -v systemctl >/dev/null && systemctl is-active %{name}-performance-analyzer.service >/dev/null; then echo "Stop existing %{name}-performance-analyzer.service" @@ -204,6 +205,15 @@ if command -v systemd-tmpfiles > /dev/null; then systemd-tmpfiles --create %{name}.conf fi +if [ -f %{tmp_dir}/wazuh-indexer.restart ]; then + rm -f %{tmp_dir}/wazuh-indexer.restart + if command -v systemctl > /dev/null; then + echo "Restarting wazuh-indexer service..." + systemctl restart wazuh-indexer.service > /dev/null 2>&1 + exit 0 + fi +fi + # Messages echo "### NOT starting on installation, please execute the following statements to configure wazuh-indexer service to start automatically using systemd" echo " sudo systemctl daemon-reload"