From a7fa50096b5cb3c24dd5b7948aa2dde79a9b8709 Mon Sep 17 00:00:00 2001 From: phil Date: Sun, 21 Jan 2024 12:16:59 +0100 Subject: [PATCH] Set package on hold after installation --- README.md | 4 ++++ tasks/main.yml | 7 +++++++ templates/update-opensearch-plugins.j2 | 13 ++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2785136..49eb6a2 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,7 @@ Opensearch ========== Installation and configuration of [Opensearch](https://opensearch.org/). + +Note: After the installation the package will be set on hold. This is because +a packages update fails if additional plugins are installed. These plugins are build +for a single version of opensearch and a restart with a newer version will fail. diff --git a/tasks/main.yml b/tasks/main.yml index c9cfdde..c1d9b5d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,6 +13,13 @@ - name: "Opensearch | Install opensearch" ansible.builtin.apt: name: opensearch + allow_change_held_packages: true + +- name: Opensearch | Hold package + ansible.builtin.dpkg_selections: + name: opensearch + selection: hold + when: opensearch_plugins is defined - name: "Opensearch | Install plugins" ansible.builtin.command: diff --git a/templates/update-opensearch-plugins.j2 b/templates/update-opensearch-plugins.j2 index efb0716..c00ec5a 100644 --- a/templates/update-opensearch-plugins.j2 +++ b/templates/update-opensearch-plugins.j2 @@ -32,8 +32,19 @@ case "$ACTION" in done systemctl restart $OPENSEARCH_SERVICE ;; + reinstall) + for plugin in "${PLUGINS[@]}"; do + if [ -d "$OPENSEARCH_PLUGIN_PATH/$plugin" ]; then + $OPENSEARCH_BIN_PATH/opensearch-plugin remove $plugin + fi + done + for plugin in "${PLUGINS[@]}"; do + $OPENSEARCH_BIN_PATH/opensearch-plugin install $plugin --batch + done + systemctl restart $OPENSEARCH_SERVICE + ;; help) - echo "Syntax: $(basename "$0") { purge | install | help }" + echo "Syntax: $(basename "$0") { purge | install | reinstall | help }" echo ;; *)