From aa69706ede420707e312590bb1459016f2e6cb4a Mon Sep 17 00:00:00 2001 From: tehNooB <125163838+JamesTurland@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:28:28 +0000 Subject: [PATCH] Create longhorn-rke2.sh --- Kubernetes/Longhorn/longhorn-rke2.sh | 86 ++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Kubernetes/Longhorn/longhorn-rke2.sh diff --git a/Kubernetes/Longhorn/longhorn-rke2.sh b/Kubernetes/Longhorn/longhorn-rke2.sh new file mode 100644 index 0000000..de5009a --- /dev/null +++ b/Kubernetes/Longhorn/longhorn-rke2.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +echo -e " \033[33;2m __ _ _ ___ \033[0m" +echo -e " \033[33;2m \ \(_)_ __ ___( )__ / _ \__ _ _ __ __ _ __ _ ___ \033[0m" +echo -e " \033[33;2m \ \ | '_ \` _ \/ __| / /_\/ _\` | '__/ _\` |/ _\` |/ _ \ \033[0m" +echo -e " \033[33;2m /\_/ / | | | | | \__ \ / /_\\ (_| | | | (_| | (_| | __/ \033[0m" +echo -e " \033[33;2m \___/|_|_| |_| |_|___/ \____/\__,_|_| \__,_|\__, |\___| \033[0m" +echo -e " \033[33;2m |___/ \033[0m" +echo -e " \033[35;2m __ _ \033[0m" +echo -e " \033[35;2m / / ___ _ __ __ _| |__ ___ _ __ _ __ \033[0m" +echo -e " \033[35;2m / / / _ \| '_ \ / _\` | '_ \ / _ \| '__| '_ \ \033[0m" +echo -e " \033[35;2m / /__| (_) | | | | (_| | | | | (_) | | | | | | \033[0m" +echo -e " \033[35;2m \____/\___/|_| |_|\__, |_| |_|\___/|_| |_| |_| \033[0m" +echo -e " \033[35;2m |___/ \033[0m" +echo -e " \033[36;2m \033[0m" +echo -e " \033[32;2m https://youtube.com/@jims-garage \033[0m" +echo -e " \033[32;2m \033[0m" + +############################################# +# YOU SHOULD ONLY NEED TO EDIT THIS SECTION # +############################################# + +# THIS SCRIPT IS FOR RKE2, NOT K3S! +# THIS SCRIPT IS FOR RKE2, NOT K3S! +# THIS SCRIPT IS FOR RKE2, NOT K3S! + +# Set the IP addresses of master1 +master1=192.168.3.21 + +# Set the IP addresses of your Longhorn nodes +longhorn1=192.168.3.26 +longhorn2=192.168.3.27 +longhorn3=192.168.3.28 + +# User of remote machines +user=ubuntu + +# Interface used on remotes +interface=eth0 + +# Set the virtual IP address (VIP) +vip=192.168.3.50 + +# Array of longhorn nodes +storage=($longhorn1 $longhorn2 $longhorn3) + +#ssh certificate name variable +certName=id_rsa + +############################################# +# DO NOT EDIT BELOW # +############################################# +# For testing purposes - in case time is wrong due to VM snapshots +sudo timedatectl set-ntp off +sudo timedatectl set-ntp on + +# Step 1: Add new longhorn nodes to cluster (note: label added) +# Set token variable needed for RKE2 (not required for K3S) +token=`cat token` +for newnode in "${storage[@]}"; do + ssh -tt $user@$newnode -i ~/.ssh/$certName sudo su <> /etc/rancher/rke2/config.yaml + echo "server: https://$vip:9345" >> /etc/rancher/rke2/config.yaml + echo "node-label: longhorn=true" >> /etc/rancher/rke2/config.yaml + curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh - + systemctl enable rke2-agent.service + systemctl start rke2-agent.service + exit +EOF + echo -e " \033[32;5mMaster node joined successfully!\033[0m" +done + +# Step 2: Install Longhorn (using modified Official to pin to Longhorn Nodes) +kubectl apply -f https://raw.githubusercontent.com/JamesTurland/JimsGarage/main/Kubernetes/Longhorn/longhorn.yaml +kubectl get pods \ +--namespace longhorn-system \ +--watch + +# Step 3: Print out confirmation + +kubectl get nodes +kubectl get svc -n longhorn-system + +echo -e " \033[32;5mHappy Kubing! Access Longhorn through Rancher UI\033[0m"