From af69fc539d6afd0e7eb2ac64472c0629b7ad5d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B3=80=EC=A0=95=ED=9B=88?= Date: Wed, 1 Feb 2023 02:04:58 +0000 Subject: [PATCH] Add start.sh --- start.sh | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 start.sh diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..db549c5 --- /dev/null +++ b/start.sh @@ -0,0 +1,123 @@ +#!/bin/sh + +source ./tmaxcloud.conf + +ESC=`printf "\033"`; + +input_key() { + read -s -n3 INPUT; + echo $INPUT; +} + +check_selected() { + if [ $1 = $2 ]; + then echo " => " + else echo " " + fi +} + +select_menu() { + SELECTED=1; + INPUT=""; + MIN_MENU=1; + MAX_MENU=$#; + + while true; + do + for (( i=1; i<=$#; i++)) + do + printf "$ESC[2K$(check_selected $i $SELECTED) $i. ${!i}\n"; + done + printf "\n$ESC[2Ke-mail : sa_8001@jhcloud.kr\nmake.202201012\n"; + INPUT=$(input_key); + if [[ $INPUT = "" ]]; + then break; + fi + + if [[ $INPUT = $ESC[A ]]; + then SELECTED=$(expr $SELECTED - 1); + elif [[ $INPUT = $ESC[B ]]; + then SELECTED=$(expr $SELECTED + 1); + fi + + if [[ $SELECTED -lt $MIN_MENU ]]; + then SELECTED=${MIN_MENU}; + elif [[ $SELECTED -gt $MAX_MENU ]]; + then SELECTED=${MAX_MENU}; + fi + + printf "$ESC[$(expr $# + 3)A"; + done + return `expr ${SELECTED} - 1`; +} + +select_test() { + arr_params=("Inventory Settings" "Install K8S infra" "Install argocd-installer" "Show argocd password" "Reset Cluster"); + echo -e "\nWelmcome! HyperCloud Helper\nChoose your job\n"; + select_menu "${arr_params[@]}"; + local SELECTED=$?; + SELECTED_MODE=${arr_params[${SELECTED}]}; +} + +main() { + select_test; + if [ $SELECTED -eq 1 ] + then + all_node=(${master_node_name[@]} ${worker_node_name[@]}) + all_node_ip=(${master_node_ip[@]} ${worker_node_ip[@]}) + echo "[all]" > ./1.infra-installer/inventory/tmaxcloud/inventory.ini + for ((i=0; i<${#all_node[@]}; i++)); + do + echo ${all_node[i]} "ansible_host="${all_node_ip[i]} "ip="${all_node_ip[i]} >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + done + echo "" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + echo "[kube_control_plane]" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + for ((i=0; i<${#master_node_name[@]}; i++)); + do + echo ${master_node_name[i]} >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + done + echo "" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + echo "[etcd]" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + for ((i=0; i<${#master_node_name[@]}; i++)); + do + echo ${master_node_name[i]} >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + done + echo "" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + echo "[kube_node]" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + for ((i=0; i<${#worker_node_name[@]}; i++)); + do + echo ${worker_node_name[i]} >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + done + echo "" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + echo -e "[calico_rr]\n\n[k8s_cluster:children]\nkube_control_plane\nkube_node\ncalico_rr" >> ./1.infra-installer/inventory/tmaxcloud/inventory.ini + cp ./1.infra-installer/inventory/tmaxcloud/inventory.ini ./2.argocd-installer/inventory/tmaxcloud/inventory.ini + echo -e "\n\033[93mSettings Done! choose menu 2\033[0m" + main + elif [ $SELECTED -eq 2 ] + then + if [ ${#worker_node_name[@]} -eq 0 ] + then + ansible-playbook -i ./1.infra-installer/inventory/tmaxcloud/inventory.ini --become --become-user=root ./1.infra-installer/cluster.yml -e ignore_assert_errors=yes -e API_SERVER_IP=$API_SERVER_IP -e DNS_SERVER_IP=$DNS_SERVER_IP -e REGISTRY_URL=$REGISTRY_URL -e REPO_URL=$REPO_URL -e NFS_ENABLED=$NFS_ENABLED -e NFS_SERVER_IP=$NFS_SERVER_IP -e NFS_DIR=$NFS_DIR -e LB_POOL=$LB_POOL -e NODE_IP_CIDR=$NODE_IP_CIDR -e TRAFFIK_DOMAIN=$TRAFFIK_DOMAIN -e TRAFFIK_DOMAIN_IP=$TRAFFIK_DOMAIN_IP -e SC=$SC -e GITLAB_PASSWORD=$GITLAB_PASSWORD -e CLUSTER_IP=$CLUSTER_IP -e POD_IP=$POD_IP -e KUBE_VERSION=$KUBE_VERSION -e HYPERREGISTRY_SUBDOMAIN=$HYPERREGISTRY_SUBDOMAIN -e HYPERREGISTRY_NOTARY_SUBDOMAIN=$HYPERREGISTRY_NOTARY_SUBDOMAIN -e GITLAB_SUBDOMAIN=$GITLAB_SUBDOMAIN + else + ansible-playbook -i ./1.infra-installer/inventory/tmaxcloud/inventory.ini --become --become-user=root ./1.infra-installer/cluster.yml -e API_SERVER_IP=$API_SERVER_IP -e DNS_SERVER_IP=$DNS_SERVER_IP -e REGISTRY_URL=$REGISTRY_URL -e REPO_URL=$REPO_URL -e NFS_ENABLED=$NFS_ENABLED -e NFS_SERVER_IP=$NFS_SERVER_IP -e NFS_DIR=$NFS_DIR -e LB_POOL=$LB_POOL -e NODE_IP_CIDR=$NODE_IP_CIDR -e TRAFFIK_DOMAIN=$TRAFFIK_DOMAIN -e TRAFFIK_DOMAIN_IP=$TRAFFIK_DOMAIN_IP -e SC=$SC -e GITLAB_PASSWORD=$GITLAB_PASSWORD -e CLUSTER_IP=$CLUSTER_IP -e POD_IP=$POD_IP -e KUBE_VERSION=$KUBE_VERSION -e HYPERREGISTRY_SUBDOMAIN=$HYPERREGISTRY_SUBDOMAIN -e HYPERREGISTRY_NOTARY_SUBDOMAIN=$HYPERREGISTRY_NOTARY_SUBDOMAIN -e GITLAB_SUBDOMAIN=$GITLAB_SUBDOMAIN + fi + elif [ $SELECTED -eq 3 ] + then + if [ ${#worker_node_name[@]} -eq 0 ] + then + ansible-playbook -i ./2.argocd-installer/inventory/tmaxcloud/inventory.ini --become --become-user=root ./2.argocd-installer/cluster.yml -e ignore_assert_errors=yes -e API_SERVER_IP=$API_SERVER_IP -e DNS_SERVER_IP=$DNS_SERVER_IP -e REGISTRY_URL=$REGISTRY_URL -e REPO_URL=$REPO_URL -e NFS_ENABLED=$NFS_ENABLED -e NFS_SERVER_IP=$NFS_SERVER_IP -e NFS_DIR=$NFS_DIR -e LB_POOL=$LB_POOL -e NODE_IP_CIDR=$NODE_IP_CIDR -e NGINX_DOMAIN=$NGINX_DOMAIN -e NGINX_DOMAIN_IP=$NGINX_DOMAIN_IP -e SC=$SC -e GITLAB_PASSWORD=$GITLAB_PASSWORD -e CLUSTER_IP=$CLUSTER_IP -e POD_IP=$POD_IP -e KUBE_VERSION=$KUBE_VERSION -e HYPERREGISTRY_SUBDOMAIN=$HYPERREGISTRY_SUBDOMAIN -e HYPERREGISTRY_NOTARY_SUBDOMAIN=$HYPERREGISTRY_NOTARY_SUBDOMAIN -e GITLAB_SUBDOMAIN=$GITLAB_SUBDOMAIN -t bootstrap-cloud + else + ansible-playbook -i ./2.argocd-installer/inventory/tmaxcloud/inventory.ini --become --become-user=root ./2.argocd-installer/cluster.yml -e API_SERVER_IP=$API_SERVER_IP -e DNS_SERVER_IP=$DNS_SERVER_IP -e REGISTRY_URL=$REGISTRY_URL -e REPO_URL=$REPO_URL -e NFS_ENABLED=$NFS_ENABLED -e NFS_SERVER_IP=$NFS_SERVER_IP -e NFS_DIR=$NFS_DIR -e LB_POOL=$LB_POOL -e NODE_IP_CIDR=$NODE_IP_CIDR -e NGINX_DOMAIN=$NGINX_DOMAIN -e NGINX_DOMAIN_IP=$NGINX_DOMAIN_IP -e SC=$SC -e GITLAB_PASSWORD=$GITLAB_PASSWORD -e CLUSTER_IP=$CLUSTER_IP -e POD_IP=$POD_IP -e KUBE_VERSION=$KUBE_VERSION -e HYPERREGISTRY_SUBDOMAIN=$HYPERREGISTRY_SUBDOMAIN -e HYPERREGISTRY_NOTARY_SUBDOMAIN=$HYPERREGISTRY_NOTARY_SUBDOMAIN -e GITLAB_SUBDOMAIN=$GITLAB_SUBDOMAIN -t bootstrap-cloud + fi + elif [ $SELECTED -eq 4 ] + then + echo -e "\n\033[93m$(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo)\n\033[0m" + elif [ $SELECTED -eq 5 ] + then + ansible-playbook -i ./1.infra-installer/inventory/tmaxcloud/inventory.ini --become --become-user=root ./1.infra-installer/reset.yml + podman network create podman + podman stop tmaxcloud + podman stop registry-browser + fi +} +main \ No newline at end of file