From 1e713d7b7b3371502ddd2f1b68f2f6d0de038aba Mon Sep 17 00:00:00 2001 From: Madhur Ahuja Date: Sat, 20 Jan 2024 18:14:00 +0530 Subject: [PATCH] Add Cassandra script (#2367) --------- Co-authored-by: @madhur --- ct/cassandra.sh | 66 ++++++++++++++++++++++++++++++++++++ install/cassandra-install.sh | 66 ++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 ct/cassandra.sh create mode 100644 install/cassandra-install.sh diff --git a/ct/cassandra.sh b/ct/cassandra.sh new file mode 100644 index 00000000..c47f0655 --- /dev/null +++ b/ct/cassandra.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func) +# Copyright (c) 2021-2024 tteck +# Author: tteck (tteckster) +# License: MIT +# https://github.com/tteck/Proxmox/raw/main/LICENSE + +function header_info { +clear +cat <<"EOF" + ______ __ + / ____/___ _______________ _____ ____/ /________ _ + / / / __ `/ ___/ ___/ __ `/ __ \/ __ / ___/ __ `/ +/ /___/ /_/ (__ |__ ) /_/ / / / / /_/ / / / /_/ / +\____/\__,_/____/____/\__,_/_/ /_/\__,_/_/ \__,_/ +EOF +} +header_info +echo -e "Loading..." +APP="Cassandra" +var_disk="4" +var_cpu="1" +var_ram="2048" +var_os="debian" +var_version="12" +VERBOSE="yes" +variables +color +catch_errors + +function default_settings() { + CT_TYPE="1" + PW="" + CT_ID=$NEXTID + HN=$NSAPP + DISK_SIZE="$var_disk" + CORE_COUNT="$var_cpu" + RAM_SIZE="$var_ram" + BRG="vmbr0" + NET="dhcp" + GATE="" + APT_CACHER="" + APT_CACHER_IP="" + DISABLEIP6="no" + MTU="" + SD="" + NS="" + MAC="" + VLAN="" + SSH="no" + VERB="no" + echo_default +} + +function update_script() { +header_info +if [[ ! -f /etc/systemd/system/cassandra.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi +msg_error "There is currently no update path available." +exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" diff --git a/install/cassandra-install.sh b/install/cassandra-install.sh new file mode 100644 index 00000000..15f05f91 --- /dev/null +++ b/install/cassandra-install.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2024 tteck +# Author: tteck (tteckster) +# License: MIT +# https://github.com/tteck/Proxmox/raw/main/LICENSE + +source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt-get install -y curl +$STD apt-get install -y sudo +$STD apt-get install -y mc +$STD apt-get install -y apt-transport-https +$STD apt-get install -y gnupg +msg_ok "Installed Dependencies" + +msg_info "Installing OpenJDK" +wget -qO- https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg +echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main' >/etc/apt/sources.list.d/adoptium.list +$STD apt-get update +$STD apt-get install -y temurin-8-jdk +msg_ok "Installed OpenJDK" + +msg_info "Installing Cassandra" +release=$(curl -s https://cassandra.apache.org/_/download.html | grep -oP '(?<=/cassandra/)[0-9]+\.[0-9]+\.[0-9]+' | head -n 1) +wget -qO- https://dlcdn.apache.org/cassandra/$release/apache-cassandra-${release}-bin.tar.gz | tar -xz -C /opt +mv /opt/apache-cassandra-${release} /opt/cassandra +sed -i -e 's/^rpc_address: localhost/#rpc_address: localhost/g' -e 's/^# rpc_interface: eth1/rpc_interface: eth0/g' /opt/cassandra/conf/cassandra.yaml +msg_ok "Installed Cassandra" + +msg_info "Creating Service" +cat </etc/systemd/system/cassandra.service +[Unit] +Description=Cassandra +After=network.target + +[Service] +PIDFile=/tmp/cassandra.pid +ExecStart=/opt/cassandra/bin/cassandra -p /tmp/cassandra.pid -R +StandardOutput=append:/tmp/cassandra.log +StandardError=append:/tmp/cassandra-error.log +LimitNOFILE=100000 +LimitMEMLOCK=infinity +LimitNPROC=32768 +LimitAS=infinity + +[Install] +WantedBy=default.target +EOF +systemctl enable -q --now cassandra.service +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get autoremove +$STD apt-get autoclean +msg_ok "Cleaned"