diff --git a/salt/logstash/map.jinja b/salt/logstash/map.jinja index 8fc3291e5..da2bc341a 100644 --- a/salt/logstash/map.jinja +++ b/salt/logstash/map.jinja @@ -1,5 +1,5 @@ {# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one - or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at + or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at https://securityonion.net/license; you may not use this file except in compliance with the Elastic License 2.0. #} @@ -42,4 +42,4 @@ {% do LOGSTASH_MERGED.update({'enabled': False}) %} {% endif %} {% endif %} -{% endif %} \ No newline at end of file +{% endif %} diff --git a/salt/top.sls b/salt/top.sls index d876806f2..cffd1ebc8 100644 --- a/salt/top.sls +++ b/salt/top.sls @@ -12,6 +12,7 @@ base: '*': - cron.running - repo.client + - versionlock - ntp - schedule - logrotate diff --git a/salt/versionlock/defaults.yaml b/salt/versionlock/defaults.yaml index b7bce6c48..cacd1d7bb 100644 --- a/salt/versionlock/defaults.yaml +++ b/salt/versionlock/defaults.yaml @@ -1,3 +1,2 @@ versionlock: - kernel: False hold: [] diff --git a/salt/versionlock/init.sls b/salt/versionlock/init.sls index ac27d69d7..278809aee 100644 --- a/salt/versionlock/init.sls +++ b/salt/versionlock/init.sls @@ -1,3 +1,8 @@ +# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one +# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at +# https://securityonion.net/license; you may not use this file except in compliance with the +# Elastic License 2.0. + {% from 'versionlock/map.jinja' import VERSIONLOCKMERGED %} {% for pkg in VERSIONLOCKMERGED.hold %} diff --git a/salt/versionlock/map.jinja b/salt/versionlock/map.jinja index 79ef1c45c..e078ff22d 100644 --- a/salt/versionlock/map.jinja +++ b/salt/versionlock/map.jinja @@ -1,7 +1,13 @@ +{# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one + or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at + https://securityonion.net/license; you may not use this file except in compliance with the + Elastic License 2.0. #} + {% import_yaml 'versionlock/defaults.yaml' as VERSIONLOCKDEFAULTS %} {% set VERSIONLOCKMERGED = salt['pillar.get']('versionlock', VERSIONLOCKDEFAULTS.versionlock, merge=True) %} {% set HELD = salt['pkg.list_holds']() %} +{# these are packages held / versionlock in other states #} {% set PACKAGES_HELD_IN_OTHER_STATES = [ 'salt', 'salt-master', @@ -12,21 +18,16 @@ 'docker-ce-rootless-extras' ] %} -{% if VERSIONLOCKMERGED.kernel %} - {% do VERSIONLOCKMERGED['hold'].append('kernel') %} -{% endif %} - {# remove packages held in other states from hold list #} {% do VERSIONLOCKMERGED.update({'hold': VERSIONLOCKMERGED['hold'] | unique | reject('in', PACKAGES_HELD_IN_OTHER_STATES) | list }) %} +{# initiate VERSIONLOCKMERGED.UNHOLD #} {% do VERSIONLOCKMERGED.update({'UNHOLD': []}) %} {# if a package is currently held but not set to be held, unhold it #} {% for item in HELD %} {% set base_name = item.rsplit('-', 2)[0] %} - {% if base_name not in VERSIONLOCKMERGED['hold'] - and base_name not in PACKAGES_HELD_IN_OTHER_STATES - and base_name not in VERSIONLOCKMERGED['UNHOLD'] %} + {% if base_name not in VERSIONLOCKMERGED['hold'] and base_name not in PACKAGES_HELD_IN_OTHER_STATES and base_name not in VERSIONLOCKMERGED['UNHOLD'] %} {% do VERSIONLOCKMERGED['UNHOLD'].append(base_name) %} {% endif %} {% endfor %} diff --git a/salt/versionlock/soc_versionlock.yaml b/salt/versionlock/soc_versionlock.yaml index b5f25c3a7..24b8676a9 100644 --- a/salt/versionlock/soc_versionlock.yaml +++ b/salt/versionlock/soc_versionlock.yaml @@ -1,10 +1,7 @@ versionlock: - kernel: - description: Lock the kernel to prevent upgrade. - global: True - forcedType: bool hold: - description: List of packages to hold + description: List of packages to hold. To reduce the frequency of required reboots, add 'kernel' to this list. global: True forcedType: "[]string" multiline: True + helpLink: versionlock.html diff --git a/setup/so-functions b/setup/so-functions index 5ebf76c17..8e83f822d 100755 --- a/setup/so-functions +++ b/setup/so-functions @@ -1404,7 +1404,7 @@ make_some_dirs() { mkdir -p $local_salt_dir/salt/firewall/portgroups mkdir -p $local_salt_dir/salt/firewall/ports - for THEDIR in bpf pcap elasticsearch ntp firewall redis backup influxdb strelka sensoroni soc docker zeek suricata nginx telegraf logstash soc manager kratos idstools idh elastalert stig global kafka;do + for THEDIR in bpf pcap elasticsearch ntp firewall redis backup influxdb strelka sensoroni soc docker zeek suricata nginx telegraf logstash soc manager kratos idstools idh elastalert stig global kafka versionlock; do mkdir -p $local_salt_dir/pillar/$THEDIR touch $local_salt_dir/pillar/$THEDIR/adv_$THEDIR.sls touch $local_salt_dir/pillar/$THEDIR/soc_$THEDIR.sls