Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates rpm and deb distribution to adapt to admin password change #4332

Merged
merged 14 commits into from
Jan 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions scripts/components/OpenSearch/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ if [ "$DISTRIBUTION" = "tar" ]; then
elif [ "$DISTRIBUTION" = "deb" -o "$DISTRIBUTION" = "rpm" ]; then
cp -va ../../../scripts/pkg/service_templates/opensearch/* "$OUTPUT/../"
cp -va ../../../scripts/pkg/build_templates/opensearch/$DISTRIBUTION/* "$OUTPUT/../"
if [ "$DISTRIBUTION" = "deb" ]; then
sed -i "s/CHANGE_VERSION/${VERSION}/g" "$OUTPUT/../debian/preinst"
fi
elif [ "$DISTRIBUTION" = "zip" ] && [ "$PLATFORM" = "windows" ]; then
cp -v ../../../scripts/startup/zip/windows/opensearch-windows-install.bat "$OUTPUT/"
fi
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ pid_dir=/var/run/opensearch

# Apply Security Settings
if [ -d ${product_dir}/plugins/opensearch-security ]; then
bash ${product_dir}/plugins/opensearch-security/tools/install_demo_configuration.sh -y -i -s > ${log_dir}/install_demo_configuration.log 2>&1
bash ${product_dir}/plugins/opensearch-security/tools/install_demo_configuration.sh -y -i -s > ${log_dir}/install_demo_configuration.log 2>&1 || (echo "ERROR: Something went wrong during demo configuration installation. Please see the logs in ${log_dir}/install_demo_configuration.log" && exit 1)
fi

# Apply PerformanceAnalyzer Settings
chmod a+rw /tmp
if ! grep -q '## OpenSearch Performance Analyzer' ${config_dir}/jvm.options; then
Expand Down
25 changes: 25 additions & 0 deletions scripts/pkg/build_templates/opensearch/deb/debian/preinst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

set -e

OPENSEARCH_VERSION=CHANGE_VERSION

echo "Running OpenSearch Pre-Installation Script"

# Stop existing service
Expand All @@ -23,6 +25,29 @@ if command -v systemctl >/dev/null && systemctl is-active opensearch-performance
systemctl --no-reload stop opensearch-performance-analyzer.service
fi

# Check if OPENSEARCH_INITIAL_ADMIN_PASSWORD is defined
# TODO:
# 1. This check will need to be modified if there will be a min dist for deb in future (currently there is none)
peterzhuamazon marked this conversation as resolved.
Show resolved Hide resolved
# 2. Currently, the demo config setup is defined to run, in postinst, if `opensearch-security` is present. Cannot apply the same check here since the plugins folder is not available yet.

# Check if this is an upgrade by checking whether opensearch already exists
if dpkg-query -W opensearch >/dev/null 2>&1; then
OPENSEARCH_ALREADY_INSTALLED=yes
else
OPENSEARCH_ALREADY_INSTALLED=no
fi

OPENSEARCH_REQUIRED_VERSION="2.12.0"
MINIMUM_OF_TWO_VERSIONS=`echo $OPENSEARCH_REQUIRED_VERSION $OPENSEARCH_VERSION | tr ' ' '\n' | sort -V | uniq | head -n 1`

if [ $OPENSEARCH_ALREADY_INSTALLED = no ]; then
if [ $MINIMUM_OF_TWO_VERSIONS = $OPENSEARCH_REQUIRED_VERSION ] && [ -z "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" ]; then
echo "ERROR: Opensearch 2.12 and later requires the env variable OPENSEARCH_INITIAL_ADMIN_PASSWORD to be defined to setup the opensearch-security demo configuration"
exit 1
fi
fi


# Create user and group if they do not already exist.
getent group opensearch > /dev/null 2>&1 || groupadd -r opensearch
getent passwd opensearch > /dev/null 2>&1 || \
Expand Down
26 changes: 25 additions & 1 deletion scripts/pkg/build_templates/opensearch/rpm/opensearch.rpm.spec
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,30 @@ if command -v systemctl >/dev/null && systemctl is-active opensearch-performance
echo "Stop existing opensearch-performance-analyzer.service"
systemctl --no-reload stop opensearch-performance-analyzer.service
fi

# Check if OPENSEARCH_INITIAL_ADMIN_PASSWORD is defined
# TODO:
# 1. This check will need to be modified if there will be a min dist for deb in future (currently there is none)
# 2. Currently, the demo config setup is defined to run, in postinst, if `opensearch-security` is present. Cannot apply the same check here since the plugins folder is not available yet.

# Check if this is an upgrade by checking whether opensearch already exists
if rpm -q opensearch >/dev/null 2>&1 || yum list installed opensearch >/dev/null 2>&1; then
OPENSEARCH_ALREADY_INSTALLED=yes
else
OPENSEARCH_ALREADY_INSTALLED=no
fi

OPENSEARCH_REQUIRED_VERSION="2.12.0"
OPENSEARCH_VERSION=%{_version}
MINIMUM_OF_TWO_VERSIONS=`echo $OPENSEARCH_REQUIRED_VERSION $OPENSEARCH_VERSION | tr ' ' '\n' | sort -V | uniq | head -n 1`

if [ $OPENSEARCH_ALREADY_INSTALLED = no ]; then
if [ $MINIMUM_OF_TWO_VERSIONS = $OPENSEARCH_REQUIRED_VERSION ] && [ -z "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" ]; then
echo "ERROR: Opensearch 2.12 and later requires the env variable OPENSEARCH_INITIAL_ADMIN_PASSWORD to be defined to setup the opensearch-security demo configuration"
exit 1
fi
fi

# Create user and group if they do not already exist.
getent group %{name} > /dev/null 2>&1 || groupadd -r %{name}
getent passwd %{name} > /dev/null 2>&1 || \
Expand All @@ -100,7 +124,7 @@ exit 0
set -e
# Apply Security Settings
if [ -d %{product_dir}/plugins/opensearch-security ]; then
sh %{product_dir}/plugins/opensearch-security/tools/install_demo_configuration.sh -y -i -s > %{log_dir}/install_demo_configuration.log 2>&1
sh %{product_dir}/plugins/opensearch-security/tools/install_demo_configuration.sh -y -i -s > %{log_dir}/install_demo_configuration.log 2>&1 || (echo "ERROR: Something went wrong during demo configuration installation. Please see the logs in %{log_dir}/install_demo_configuration.log" && exit 1)
fi
chown -R %{name}.%{name} %{config_dir}
chown -R %{name}.%{name} %{log_dir}
Expand Down
Loading