#!/bin/bash # 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. source /usr/sbin/so-common doc_desktop_url="$DOC_BASE_URL/desktop.html" {# we only want the script to install the desktop if it is OEL -#} {% if grains.os == 'OEL' -%} {# if this is a manager -#} {% if grains.master == grains.id.split('_')|first -%} pillar_file="/opt/so/saltstack/local/pillar/minions/adv_{{grains.id}}.sls" if [ -f "$pillar_file" ]; then if ! grep -q "^desktop:$" "$pillar_file"; then FIRSTPASS=yes while [[ $INSTALL != "yes" ]] && [[ $INSTALL != "no" ]]; do if [[ "$FIRSTPASS" == "yes" ]]; then echo "###########################################" echo "## ** W A R N I N G ** ##" echo "## _______________________________ ##" echo "## ##" echo "## Installing the Security Onion ##" echo "## Desktop on this device will ##" echo "## make permanent changes to ##" echo "## the system. ##" echo "## A system reboot will be required ##" echo "## to complete the install. ##" echo "## ##" echo "###########################################" echo "Do you wish to continue? (Type the entire word 'yes' to proceed or 'no' to exit)" FIRSTPASS=no else echo "Please type 'yes' to continue or 'no' to exit." fi read INSTALL done if [[ $INSTALL == "no" ]]; then echo "Exiting desktop node installation." exit 0 fi # Add desktop pillar to the minion's pillar file printf '%s\n'\ "desktop:"\ " gui:"\ " enabled: true"\ "" >> "$pillar_file" echo "Applying the desktop state. This could take some time since there are many packages that need to be installed." if salt-call state.apply desktop -linfo queue=True; then # make sure the state ran successfully echo "" echo "Security Onion Desktop has been installed!" echo "Press ENTER to reboot or Ctrl-C to cancel." read pause reboot; else echo "There was an issue applying the desktop state. Please review the log above or at /opt/so/log/salt/minion." fi else # desktop is already added echo "The desktop pillar already exists in $pillar_file." echo "To enable/disable the gui, set 'desktop:gui:enabled' to true or false in $pillar_file. Alternatively, this can be set in the SOC UI under advanced." echo "Additional documentation can be found at $doc_desktop_url." fi else # if the pillar file doesn't exist echo "Could not find $pillar_file and add the desktop pillar." fi {#- if this is not a manager #} {% else -%} echo "Since this is not a manager, the pillar values to enable Security Onion Desktop must be set manually. This can be enabled in the SOC UI under advanced by adding the following:" echo "desktop:" echo " gui:" echo " enabled: true" echo "" echo "Please view the documentation at $doc_desktop_url." {#- endif if this is a manager #} {% endif -%} {#- if not OEL #} {%- else %} echo "The Security Onion Desktop can only be installed on Oracle Linux. Please view the documentation at $doc_desktop_url." {#- endif grains.os == OEL #} {% endif -%} exit 0