From e1858b60a889d9f6be24565fae7695fbd1ad99b5 Mon Sep 17 00:00:00 2001 From: Oliver Gwyther Date: Tue, 16 Apr 2024 13:27:41 +0100 Subject: [PATCH] Adjustments, apt key and repo line fixes. Added OpenSearch service parameters. --- graylog/install.sh | 12 ++++++++---- graylog/readme.md | 40 ++++++++++++++++++++++++++++++++++++++-- netbox/install.sh | 20 ++++++++++++++++++-- 3 files changed, 64 insertions(+), 8 deletions(-) diff --git a/graylog/install.sh b/graylog/install.sh index f6aa398..df6c88c 100644 --- a/graylog/install.sh +++ b/graylog/install.sh @@ -14,9 +14,8 @@ echo "Installing dependencies..." # Install prerequisites for Graylog, OpenSearch, and MongoDB apt install -y apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen wget gnupg -# Function to check if the system meets the minimum requirements for Graylog check_system_requirements() { - echo "Checking system requirements for Graylog..." + echo "Checking the minimum system requirements for Graylog..."1 # Minimum required RAM (in MB) minimum_ram=4096 @@ -60,8 +59,8 @@ echo "vm.max_map_count=262144" >> /etc/sysctl.conf # Add the OpenSearch repository and its GPG key echo "Adding OpenSearch repository..." -wget -qO - https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opensearch | apt-key add - -echo "deb https://d3g5vo6xdbdb9a.cloudfront.net/debian stable main" | tee /etc/apt/sources.list.d/opensearch.list +curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring +echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | tee /etc/apt/sources.list.d/opensearch-2.x.list # Add the MongoDB repository echo "Adding MongoDB repository..." @@ -101,6 +100,11 @@ chown -R opensearch:opensearch /var/log/opensearch chmod -R 2750 /graylog/opensearch/ chmod -R 2750 /var/log/opensearch/ +# Add OpenSearch service and set it to start automatically +echo "Adding OpenSearch service and enabling autostart..." +systemctl enable opensearch +systemctl start opensearch + #Install MongoDB echo "Installing MongoDB" sudo apt install -y MongoDB diff --git a/graylog/readme.md b/graylog/readme.md index 8b4f30e..02f682e 100644 --- a/graylog/readme.md +++ b/graylog/readme.md @@ -1,3 +1,9 @@ +# Requirements: + +This script makes no additional requirments other than the following. The script will automatically install all dependencies and make the additional required system modifications. + +# Installation: + To run this script: 1. Use wget to grab the latest version: @@ -6,10 +12,40 @@ To run this script: 2. CHMOD the script to make it executable: - `chmod +x install.sh` + `sudo chmod +x install.sh` 3. Run the script: - `./install.sh` + `sudo ./install.sh` + +# Script Process: + +This script makes the following checks (in order): + +Checks the script is being run as root. + +Installs required dependencies. + +Checks the system meets the minimum system requirements. + +Disables Huge Pages Support if Enabled (OpenSearch). + +Sets Maximum File Count (OpenSearch). + +Adds all required respitory keys & Updates the package index. + +Adds the OpenSearch user. + +Installs OpenSearch. + +Creates required OpenSearch directories & log file. Ensures their permissions. + +Installs MongoDB. + +Installs Graylog + + + + diff --git a/netbox/install.sh b/netbox/install.sh index 783d804..4259287 100644 --- a/netbox/install.sh +++ b/netbox/install.sh @@ -26,7 +26,7 @@ if [[ $PYTHON_CONFIRM != "y" ]]; then fi # Check other system requirements -echo "Checking other system requirements..." +echo "Checking the system meets the minimum requirements..." RAM=$(free -m | awk '/Mem/ {print $2}') CPU=$(grep -c ^processor /proc/cpuinfo) DISK=$(df -h / | awk 'NR==2 {print $4}') @@ -55,7 +55,7 @@ if [ "$DISK_UNIT" == "G" ]; then exit 1 fi else - echo "Error: Unsupported disk space unit. Please ensure disk space is in GB." + echo "Error: Unsupported disk space unit. Please ensure disk space is at least 10GB." exit 1 fi @@ -137,6 +137,22 @@ fi echo "Collecting static files..." sudo -u netbox /opt/netbox/manage.py collectstatic --no-input +# Enable plugin support +echo "Enabling plugin support..." +echo "PLUGINS = []" >> /opt/netbox/netbox/configuration.py + +# Prompt user to enter plugin names +read -p "Enter names of plugins to add (separated by commas, leave empty to skip): " PLUGIN_NAMES + +# Add plugins to configuration file +if [ -n "$PLUGIN_NAMES" ]; then + IFS=',' read -ra PLUGINS <<< "$PLUGIN_NAMES" + for PLUGIN in "${PLUGINS[@]}"; do + echo "Adding plugin: $PLUGIN" + echo " '$PLUGIN'," >> /opt/netbox/netbox/configuration.py + done +fi + # Set file and directory permissions echo "Setting file permissions..." chown -R netbox:netbox /opt/netbox/netbox/media