mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-06-12 21:29:16 +02:00
Merge pull request #15816 from Security-Onion-Solutions/feature/postgres
soup: bootstrap postgres pillar stubs and secret on 3.0.0 upgrade
This commit is contained in:
@@ -477,7 +477,44 @@ elasticsearch_backup_index_templates() {
|
|||||||
tar -czf /nsm/backup/3.0.0_elasticsearch_index_templates.tar.gz -C /opt/so/conf/elasticsearch/templates/index/ .
|
tar -czf /nsm/backup/3.0.0_elasticsearch_index_templates.tar.gz -C /opt/so/conf/elasticsearch/templates/index/ .
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ensure_postgres_local_pillar() {
|
||||||
|
# Postgres was added as a service after 3.0.0, so the new pillar/top.sls
|
||||||
|
# references postgres.soc_postgres / postgres.adv_postgres unconditionally.
|
||||||
|
# Managers upgrading from 3.0.0 have no /opt/so/saltstack/local/pillar/postgres/
|
||||||
|
# (make_some_dirs only runs at install time), so the stubs must be created
|
||||||
|
# here before salt-master restarts against the new top.sls.
|
||||||
|
echo "Ensuring postgres local pillar stubs exist."
|
||||||
|
local dir=/opt/so/saltstack/local/pillar/postgres
|
||||||
|
mkdir -p "$dir"
|
||||||
|
[[ -f "$dir/soc_postgres.sls" ]] || touch "$dir/soc_postgres.sls"
|
||||||
|
[[ -f "$dir/adv_postgres.sls" ]] || touch "$dir/adv_postgres.sls"
|
||||||
|
chown -R socore:socore "$dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
ensure_postgres_secret() {
|
||||||
|
# On a fresh install, generate_passwords + secrets_pillar seed
|
||||||
|
# secrets:postgres_pass in /opt/so/saltstack/local/pillar/secrets.sls. That
|
||||||
|
# code path is skipped on upgrade (secrets.sls already exists from 3.0.0
|
||||||
|
# with import_pass/influx_pass but no postgres_pass), so the postgres
|
||||||
|
# container's POSTGRES_PASSWORD_FILE and SOC's PG_ADMIN_PASS would be empty
|
||||||
|
# after highstate. Generate one now if missing.
|
||||||
|
local secrets_file=/opt/so/saltstack/local/pillar/secrets.sls
|
||||||
|
if [[ ! -f "$secrets_file" ]]; then
|
||||||
|
echo "WARNING: $secrets_file missing; skipping postgres_pass backfill."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if so-yaml.py get -r "$secrets_file" secrets.postgres_pass >/dev/null 2>&1; then
|
||||||
|
echo "secrets.postgres_pass already set; leaving as-is."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo "Seeding secrets.postgres_pass in $secrets_file."
|
||||||
|
so-yaml.py add "$secrets_file" secrets.postgres_pass "$(get_random_value)"
|
||||||
|
chown socore:socore "$secrets_file"
|
||||||
|
}
|
||||||
|
|
||||||
up_to_3.1.0() {
|
up_to_3.1.0() {
|
||||||
|
ensure_postgres_local_pillar
|
||||||
|
ensure_postgres_secret
|
||||||
determine_elastic_agent_upgrade
|
determine_elastic_agent_upgrade
|
||||||
elasticsearch_backup_index_templates
|
elasticsearch_backup_index_templates
|
||||||
# Clear existing component template state file.
|
# Clear existing component template state file.
|
||||||
|
|||||||
Reference in New Issue
Block a user