mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-06-22 10:18:09 +02:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 52791204e4 |
+11
-11
@@ -1,17 +1,17 @@
|
|||||||
### 3.1.0-20260528 ISO image released on 2026/05/28
|
### 3.0.0-20260331 ISO image released on 2026/03/31
|
||||||
|
|
||||||
|
|
||||||
### Download and Verify
|
### Download and Verify
|
||||||
|
|
||||||
3.1.0-20260528 ISO image:
|
3.0.0-20260331 ISO image:
|
||||||
https://download.securityonion.net/file/securityonion/securityonion-3.1.0-20260528.iso
|
https://download.securityonion.net/file/securityonion/securityonion-3.0.0-20260331.iso
|
||||||
|
|
||||||
MD5: 9D6FF58DEEE24089D722C73169765B3E
|
MD5: ECD318A1662A6FDE0EF213F5A9BD4B07
|
||||||
SHA1: 2B8B816B6CEC3B7F96B3C5E040EBF502DD2C412F
|
SHA1: E55BE314440CCF3392DC0B06BC5E270B43176D9C
|
||||||
SHA256: 62FAB57E247C843D6A04F0796D8162C732B65D82FC3E4A59D087135B9FD32912
|
SHA256: 7FC47405E335CBE5C2B6C51FE7AC60248F35CBE504907B8B5A33822B23F8F4D5
|
||||||
|
|
||||||
Signature for ISO image:
|
Signature for ISO image:
|
||||||
https://github.com/Security-Onion-Solutions/securityonion/raw/3/main/sigs/securityonion-3.1.0-20260528.iso.sig
|
https://github.com/Security-Onion-Solutions/securityonion/raw/3/main/sigs/securityonion-3.0.0-20260331.iso.sig
|
||||||
|
|
||||||
Signing key:
|
Signing key:
|
||||||
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/3/main/KEYS
|
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/3/main/KEYS
|
||||||
@@ -25,22 +25,22 @@ wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/3/
|
|||||||
|
|
||||||
Download the signature file for the ISO:
|
Download the signature file for the ISO:
|
||||||
```
|
```
|
||||||
wget https://github.com/Security-Onion-Solutions/securityonion/raw/3/main/sigs/securityonion-3.1.0-20260528.iso.sig
|
wget https://github.com/Security-Onion-Solutions/securityonion/raw/3/main/sigs/securityonion-3.0.0-20260331.iso.sig
|
||||||
```
|
```
|
||||||
|
|
||||||
Download the ISO image:
|
Download the ISO image:
|
||||||
```
|
```
|
||||||
wget https://download.securityonion.net/file/securityonion/securityonion-3.1.0-20260528.iso
|
wget https://download.securityonion.net/file/securityonion/securityonion-3.0.0-20260331.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify the downloaded ISO image using the signature file:
|
Verify the downloaded ISO image using the signature file:
|
||||||
```
|
```
|
||||||
gpg --verify securityonion-3.1.0-20260528.iso.sig securityonion-3.1.0-20260528.iso
|
gpg --verify securityonion-3.0.0-20260331.iso.sig securityonion-3.0.0-20260331.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
||||||
```
|
```
|
||||||
gpg: Signature made Wed 27 May 2026 03:03:59 PM EDT using RSA key ID FE507013
|
gpg: Signature made Mon 30 Mar 2026 06:22:14 PM EDT using RSA key ID FE507013
|
||||||
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
||||||
gpg: WARNING: This key is not certified with a trusted signature!
|
gpg: WARNING: This key is not certified with a trusted signature!
|
||||||
gpg: There is no indication that the signature belongs to the owner.
|
gpg: There is no indication that the signature belongs to the owner.
|
||||||
|
|||||||
@@ -26,9 +26,7 @@ include:
|
|||||||
wait_for_elasticsearch_elasticfleet:
|
wait_for_elasticsearch_elasticfleet:
|
||||||
cmd.run:
|
cmd.run:
|
||||||
- name: so-elasticsearch-wait
|
- name: so-elasticsearch-wait
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if GLOBALS.role == "so-fleet" %}
|
|
||||||
# Sync Elastic Agent artifacts to Fleet Node
|
# Sync Elastic Agent artifacts to Fleet Node
|
||||||
elasticagent_syncartifacts:
|
elasticagent_syncartifacts:
|
||||||
file.recurse:
|
file.recurse:
|
||||||
|
|||||||
@@ -210,6 +210,26 @@ logrotate:
|
|||||||
- extension .log
|
- extension .log
|
||||||
- dateext
|
- dateext
|
||||||
- dateyesterday
|
- dateyesterday
|
||||||
|
/opt/so/log/salt/virtual_node_manager:
|
||||||
|
- daily
|
||||||
|
- rotate 14
|
||||||
|
- missingok
|
||||||
|
- copytruncate
|
||||||
|
- compress
|
||||||
|
- create
|
||||||
|
- extension .log
|
||||||
|
- dateext
|
||||||
|
- dateyesterday
|
||||||
|
/opt/so/log/salt/so-salt-cloud:
|
||||||
|
- daily
|
||||||
|
- rotate 14
|
||||||
|
- missingok
|
||||||
|
- copytruncate
|
||||||
|
- compress
|
||||||
|
- create
|
||||||
|
- extension .log
|
||||||
|
- dateext
|
||||||
|
- dateyesterday
|
||||||
/nsm/idh/*_x_log:
|
/nsm/idh/*_x_log:
|
||||||
- daily
|
- daily
|
||||||
- rotate 14
|
- rotate 14
|
||||||
|
|||||||
@@ -133,6 +133,20 @@ logrotate:
|
|||||||
multiline: True
|
multiline: True
|
||||||
global: True
|
global: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
|
"/opt/so/log/salt/virtual_node_manager":
|
||||||
|
description: List of logrotate options for this file.
|
||||||
|
title: /opt/so/log/salt/virtual_node_manager
|
||||||
|
advanced: True
|
||||||
|
multiline: True
|
||||||
|
global: True
|
||||||
|
forcedType: "[]string"
|
||||||
|
"/opt/so/log/salt/so-salt-cloud":
|
||||||
|
description: List of logrotate options for this file.
|
||||||
|
title: /opt/so/log/salt/so-salt-cloud
|
||||||
|
advanced: True
|
||||||
|
multiline: True
|
||||||
|
global: True
|
||||||
|
forcedType: "[]string"
|
||||||
"/nsm/idh/*_x_log":
|
"/nsm/idh/*_x_log":
|
||||||
description: List of logrotate options for this file.
|
description: List of logrotate options for this file.
|
||||||
title: /nsm/idh/*.log
|
title: /nsm/idh/*.log
|
||||||
|
|||||||
@@ -533,23 +533,6 @@ elasticfleet_set_agent_logging_level_warn() {
|
|||||||
done <<< "$policies_to_update"
|
done <<< "$policies_to_update"
|
||||||
}
|
}
|
||||||
|
|
||||||
update_logstash_pipeline_name() {
|
|
||||||
local original_pipeline_name="$1"
|
|
||||||
local new_pipeline_name="$2"
|
|
||||||
|
|
||||||
echo "Checking for conflicting logstash defined_pipelines pillar value."
|
|
||||||
local LOGSTASH_FILE=/opt/so/saltstack/local/pillar/logstash/soc_logstash.sls
|
|
||||||
local MINIONDIR=/opt/so/saltstack/local/pillar/minions
|
|
||||||
for pillar_file in "$LOGSTASH_FILE" "$MINIONDIR"/*.sls; do
|
|
||||||
[[ -f "$pillar_file" ]] || continue
|
|
||||||
if grep -q "$original_pipeline_name$" "$pillar_file"; then
|
|
||||||
echo "Found conflicting defined_pipeline pillar value in $pillar_file. Updating to use the new logstash pipeline name."
|
|
||||||
sed -i "s#$original_pipeline_name\$#$new_pipeline_name#g" "$pillar_file"
|
|
||||||
chown socore:socore "$pillar_file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
check_transform_health_and_reauthorize() {
|
check_transform_health_and_reauthorize() {
|
||||||
. /usr/sbin/so-elastic-fleet-common
|
. /usr/sbin/so-elastic-fleet-common
|
||||||
|
|
||||||
@@ -693,10 +676,6 @@ rename_strelka_scan_lnk() {
|
|||||||
rm -f "$TMP_VALUE_FILE"
|
rm -f "$TMP_VALUE_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
fix_logstash_0013_lumberjack_pipeline_name() {
|
|
||||||
update_logstash_pipeline_name "so/0013_input_lumberjack_fleet.conf" "so/0013_input_lumberjack_fleet.conf.jinja"
|
|
||||||
}
|
|
||||||
|
|
||||||
up_to_3.1.0() {
|
up_to_3.1.0() {
|
||||||
ensure_postgres_local_pillar
|
ensure_postgres_local_pillar
|
||||||
ensure_postgres_secret
|
ensure_postgres_secret
|
||||||
@@ -705,7 +684,6 @@ up_to_3.1.0() {
|
|||||||
# Clear existing component template state file.
|
# Clear existing component template state file.
|
||||||
rm -f /opt/so/state/esfleet_component_templates.json
|
rm -f /opt/so/state/esfleet_component_templates.json
|
||||||
rename_strelka_scan_lnk
|
rename_strelka_scan_lnk
|
||||||
fix_logstash_0013_lumberjack_pipeline_name
|
|
||||||
|
|
||||||
INSTALLEDVERSION=3.1.0
|
INSTALLEDVERSION=3.1.0
|
||||||
}
|
}
|
||||||
@@ -993,9 +971,6 @@ verify_es_version_compatibility() {
|
|||||||
local is_active_intermediate_upgrade=1
|
local is_active_intermediate_upgrade=1
|
||||||
# supported upgrade paths for SO-ES versions
|
# supported upgrade paths for SO-ES versions
|
||||||
declare -A es_upgrade_map=(
|
declare -A es_upgrade_map=(
|
||||||
["8.18.4"]="8.18.6 8.18.8 9.0.8"
|
|
||||||
["8.18.6"]="8.18.8 9.0.8"
|
|
||||||
["8.18.8"]="9.0.8"
|
|
||||||
["9.0.8"]="9.3.3"
|
["9.0.8"]="9.3.3"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1019,171 +994,6 @@ verify_es_version_compatibility() {
|
|||||||
exit 160
|
exit 160
|
||||||
fi
|
fi
|
||||||
|
|
||||||
compatible_es_versions="$target_es_version"
|
|
||||||
for current_version in "${!es_upgrade_map[@]}"; do
|
|
||||||
# shellcheck disable=SC2076
|
|
||||||
if [[ " ${es_upgrade_map[$current_version]} " =~ " $target_es_version " ]]; then
|
|
||||||
compatible_es_versions+=" $current_version"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Check if the given ES version can directly upgrade to the target ES version. Used to assist with catching lagging nodes during the upgrade process
|
|
||||||
es_version_can_upgrade_to_target() {
|
|
||||||
local current_version="$1"
|
|
||||||
# shellcheck disable=SC2076
|
|
||||||
if [[ -n "$current_version" && " $compatible_es_versions " =~ " $current_version " ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Gather Elasticsearch cluster version info and verify that each node in the cluster is running a version compatible with the target ES version.
|
|
||||||
verify_searchnodes_es_target_compatibility() {
|
|
||||||
local retries=20
|
|
||||||
local retry_count=0
|
|
||||||
local delay=180
|
|
||||||
local expected_es_nodes searchnode_minions attempt
|
|
||||||
local searchnode_discovery_success=false
|
|
||||||
SEARCHNODE_ES_VERSIONS=""
|
|
||||||
|
|
||||||
for attempt in {1..3}; do
|
|
||||||
if searchnode_minions=$(set -o pipefail; salt-key --out=json --list=accepted 2> /dev/null | jq -r '.minions[]? | select(endswith("searchnode"))'); then
|
|
||||||
searchnode_discovery_success=true
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Failed to retrieve grid searchnodes via salt-key... Retrying in 30 seconds. Attempt $attempt of 3."
|
|
||||||
sleep 30
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "$searchnode_discovery_success" != "true" ]]; then
|
|
||||||
echo "Failed to retrieve grid searchnodes via salt-key."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Always add node running soup to expected es nodes
|
|
||||||
expected_es_nodes="${MINIONID%_*}"
|
|
||||||
while IFS= read -r searchnode_minion; do
|
|
||||||
[[ -z "$searchnode_minion" ]] && continue
|
|
||||||
expected_es_nodes+=$'\n'"${searchnode_minion%_searchnode}"
|
|
||||||
done <<< "$searchnode_minions"
|
|
||||||
|
|
||||||
while [[ $retry_count -lt $retries ]]; do
|
|
||||||
SEARCHNODE_ES_VERSIONS=$(so-elasticsearch-query _nodes/_all/version --retry 5 --retry-delay 10 --fail 2>&1)
|
|
||||||
local exit_status=$?
|
|
||||||
|
|
||||||
if [[ $exit_status -ne 0 ]]; then
|
|
||||||
echo "Failed to retrieve Elasticsearch versions from searchnodes... Retrying in $delay seconds. Attempt $((retry_count + 1)) of $retries."
|
|
||||||
((retry_count++))
|
|
||||||
sleep $delay
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
local all_searchnodes_compatible=true
|
|
||||||
while IFS=$'\t' read -r node current_version; do
|
|
||||||
[[ -z "$node" ]] && continue
|
|
||||||
if ! es_version_can_upgrade_to_target "$current_version"; then
|
|
||||||
echo "Searchnode $node is running Elasticsearch $current_version, which is not directly upgradable to Elasticsearch $target_es_version."
|
|
||||||
all_searchnodes_compatible=false
|
|
||||||
fi
|
|
||||||
done < <(echo "$SEARCHNODE_ES_VERSIONS" | jq -r '.nodes | to_entries[] | [.value.name, .value.version] | @tsv')
|
|
||||||
|
|
||||||
while IFS= read -r expected_es_node; do
|
|
||||||
[[ -z "$expected_es_node" ]] && continue
|
|
||||||
if ! echo "$SEARCHNODE_ES_VERSIONS" | jq -e --arg node "$expected_es_node" '.nodes | to_entries | any(.value.name == $node)' > /dev/null; then
|
|
||||||
echo "Searchnode $expected_es_node did not report an Elasticsearch version. It may be offline or still upgrading."
|
|
||||||
all_searchnodes_compatible=false
|
|
||||||
fi
|
|
||||||
done <<< "$expected_es_nodes"
|
|
||||||
|
|
||||||
if [[ "$all_searchnodes_compatible" == true ]]; then
|
|
||||||
echo "All Searchnodes are upgradable to Elasticsearch $target_es_version."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "One or more Searchnodes cannot upgrade directly to Elasticsearch $target_es_version. Rechecking in $delay seconds. Attempt $((retry_count + 1)) of $retries."
|
|
||||||
((retry_count++))
|
|
||||||
sleep $delay
|
|
||||||
done
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Gather heavynode version info and verify that each node is running a version compatible with the target ES version.
|
|
||||||
verify_heavynodes_es_target_compatibility() {
|
|
||||||
local heavynode_minions attempt
|
|
||||||
local retries=20
|
|
||||||
local retry_count=0
|
|
||||||
local delay=180
|
|
||||||
local heavynode_discovery_success=false
|
|
||||||
HEAVYNODE_ES_VERSIONS=""
|
|
||||||
|
|
||||||
for attempt in {1..3}; do
|
|
||||||
if heavynode_minions=$(set -o pipefail; salt-key --out=json --list=accepted 2> /dev/null | jq -r '.minions[]? | select(endswith("heavynode"))'); then
|
|
||||||
heavynode_discovery_success=true
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Failed to retrieve grid heavynodes via salt-key... Retrying in 30 seconds. Attempt $attempt of 3."
|
|
||||||
sleep 30
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "$heavynode_discovery_success" != "true" ]]; then
|
|
||||||
echo "Failed to retrieve grid heavynodes via salt-key."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$heavynode_minions" ]]; then
|
|
||||||
echo "No heavynodes detected. Skipping heavynode Elasticsearch version compatibility check."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [[ $retry_count -lt $retries ]]; do
|
|
||||||
HEAVYNODE_ES_VERSIONS=$(salt -C 'G@role:so-heavynode' cmd.run 'set -o pipefail; so-elasticsearch-query / --retry 5 --retry-delay 10 | jq -er ".version.number"' shell=/bin/bash --out=json 2> /dev/null)
|
|
||||||
local exit_status=$?
|
|
||||||
|
|
||||||
if [[ $exit_status -ne 0 ]]; then
|
|
||||||
echo "Failed to retrieve Elasticsearch version from one or more heavynodes... Retrying in $delay seconds. Attempt $((retry_count + 1)) of $retries."
|
|
||||||
((retry_count++))
|
|
||||||
sleep $delay
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
local all_heavynodes_compatible=true
|
|
||||||
while IFS=$'\t' read -r node current_version; do
|
|
||||||
[[ -z "$node" ]] && continue
|
|
||||||
if ! es_version_can_upgrade_to_target "$current_version"; then
|
|
||||||
echo "Heavynode $node is running Elasticsearch $current_version, which is not directly upgradable to Elasticsearch $target_es_version."
|
|
||||||
all_heavynodes_compatible=false
|
|
||||||
fi
|
|
||||||
done < <(echo "$HEAVYNODE_ES_VERSIONS" | jq -r 'to_entries[] | [.key, .value] | @tsv')
|
|
||||||
|
|
||||||
while IFS= read -r heavynode_minion; do
|
|
||||||
[[ -z "$heavynode_minion" ]] && continue
|
|
||||||
if ! echo "$HEAVYNODE_ES_VERSIONS" | jq -se --arg minion "$heavynode_minion" 'add | has($minion)' > /dev/null; then
|
|
||||||
echo "Heavynode $heavynode_minion did not report an Elasticsearch version. It may be offline or still upgrading."
|
|
||||||
all_heavynodes_compatible=false
|
|
||||||
fi
|
|
||||||
done <<< "$heavynode_minions"
|
|
||||||
|
|
||||||
if [[ "$all_heavynodes_compatible" == true ]]; then
|
|
||||||
echo -e "\nAll heavynodes can upgrade to Elasticsearch $target_es_version."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "One or more heavynodes cannot upgrade directly to Elasticsearch $target_es_version. Rechecking in $delay seconds. Attempt $((retry_count + 1)) of $retries."
|
|
||||||
((retry_count++))
|
|
||||||
sleep $delay
|
|
||||||
done
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ ! -f "$es_verification_script" ]]; then
|
|
||||||
create_intermediate_upgrade_verification_script "$es_verification_script"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for statefile in "${es_required_version_statefile_base}"-*; do
|
for statefile in "${es_required_version_statefile_base}"-*; do
|
||||||
[[ -f $statefile ]] || continue
|
[[ -f $statefile ]] || continue
|
||||||
|
|
||||||
@@ -1202,6 +1012,10 @@ verify_es_version_compatibility() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$es_verification_script" ]]; then
|
||||||
|
create_intermediate_upgrade_verification_script "$es_verification_script"
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e "\n##############################################################################################################################\n"
|
echo -e "\n##############################################################################################################################\n"
|
||||||
echo "A previously required intermediate Elasticsearch upgrade was detected. Verifying that all Searchnodes/Heavynodes have successfully upgraded Elasticsearch to $es_required_version_statefile_value before proceeding with soup to avoid potential data loss! This command can take up to an hour to complete."
|
echo "A previously required intermediate Elasticsearch upgrade was detected. Verifying that all Searchnodes/Heavynodes have successfully upgraded Elasticsearch to $es_required_version_statefile_value before proceeding with soup to avoid potential data loss! This command can take up to an hour to complete."
|
||||||
if ! timeout --foreground 4000 bash "$es_verification_script" "$es_required_version_statefile_value" "$statefile"; then
|
if ! timeout --foreground 4000 bash "$es_verification_script" "$es_required_version_statefile_value" "$statefile"; then
|
||||||
@@ -1223,26 +1037,6 @@ verify_es_version_compatibility() {
|
|||||||
|
|
||||||
# shellcheck disable=SC2076 # Do not want a regex here eg usage " 8.18.8 9.0.8 " =~ " 9.0.8 "
|
# shellcheck disable=SC2076 # Do not want a regex here eg usage " 8.18.8 9.0.8 " =~ " 9.0.8 "
|
||||||
if [[ " ${es_upgrade_map[$es_version]} " =~ " $target_es_version " || "$es_version" == "$target_es_version" ]]; then
|
if [[ " ${es_upgrade_map[$es_version]} " =~ " $target_es_version " || "$es_version" == "$target_es_version" ]]; then
|
||||||
if ! verify_searchnodes_es_target_compatibility || ! verify_heavynodes_es_target_compatibility; then
|
|
||||||
echo -e "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
|
|
||||||
|
|
||||||
echo "One or more Searchnode(s)/Heavynode(s) cannot upgrade directly to Elasticsearch $target_es_version. This can happen with soups that include Elasticsearch upgrades being run in quick succession. Typically, this will resolve itself as the grid synchronizes. Please allow time for all Searchnodes/Heavynodes to have upgraded Elasticsearch to a compatible version with $target_es_version before running soup again to avoid potential data loss!"
|
|
||||||
|
|
||||||
if [[ -n "$HEAVYNODE_ES_VERSIONS" ]]; then
|
|
||||||
echo "Current heavynode Elasticsearch versions:"
|
|
||||||
echo "$HEAVYNODE_ES_VERSIONS" | jq '.'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$SEARCHNODE_ES_VERSIONS" ]]; then
|
|
||||||
echo "Current searchnode Elasticsearch versions:"
|
|
||||||
echo "$SEARCHNODE_ES_VERSIONS" | jq '.nodes | to_entries | map({(.value.name): .value.version}) | sort | add'
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
|
|
||||||
|
|
||||||
exit 161
|
|
||||||
fi
|
|
||||||
|
|
||||||
# supported upgrade
|
# supported upgrade
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
@@ -1528,13 +1322,7 @@ EOF
|
|||||||
|
|
||||||
# Keeping this block in case we need to do a hotfix that requires salt update
|
# Keeping this block in case we need to do a hotfix that requires salt update
|
||||||
apply_hotfix() {
|
apply_hotfix() {
|
||||||
if [[ "$INSTALLEDVERSION" == "3.1.0" ]] ; then
|
echo "No actions required. ($INSTALLEDVERSION/$HOTFIXVERSION)"
|
||||||
# Do not remove this fix_logstash_0013_lumberjack_pipeline_name in future hotfixes without first validating older
|
|
||||||
# installs referencing "so/0013_input_lumberjack_fleet.conf" via pillar are upgradable
|
|
||||||
fix_logstash_0013_lumberjack_pipeline_name
|
|
||||||
else
|
|
||||||
echo "No actions required. ($INSTALLEDVERSION/$HOTFIXVERSION)"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
failed_soup_restore_items() {
|
failed_soup_restore_items() {
|
||||||
@@ -1606,7 +1394,7 @@ main() {
|
|||||||
echo "Verifying we have the latest soup script."
|
echo "Verifying we have the latest soup script."
|
||||||
verify_latest_update_script
|
verify_latest_update_script
|
||||||
|
|
||||||
echo "Verifying Elasticsearch version compatibility across the grid before upgrading."
|
echo "Verifying Elasticsearch version compatibility before upgrading."
|
||||||
verify_es_version_compatibility
|
verify_es_version_compatibility
|
||||||
|
|
||||||
echo "Let's see if we need to update Security Onion."
|
echo "Let's see if we need to update Security Onion."
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user