X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ffoundation%2Fscripts%2Fstartup.sh;h=f68c2fb4329e1bd1d1b01bd35cd0841ceeecc533;hb=957a3808b3075041e0a2095918ef2bef4297ba97;hp=d660f4ede3e0955cc5892759c51582976aa3bbce;hpb=2fe3d7c689341cc5e25678416c4f035ef3e5c96a;p=iec.git diff --git a/src/foundation/scripts/startup.sh b/src/foundation/scripts/startup.sh index d660f4e..f68c2fb 100755 --- a/src/foundation/scripts/startup.sh +++ b/src/foundation/scripts/startup.sh @@ -7,14 +7,20 @@ set -e # Displays the help menu. # display_help () { - echo "Usage: $0 [master ip] [worker ip] [user] [password] " + echo "Usage:" echo " " - echo "There should be an user which will be used to install the " - echo "corresponding software on master & worker node. This user can " + echo "This script can help you to deploy a simple iec testing" + echo "environments." + echo "Firstly, the master node and worker node information must" + echo "be added into config file which will be used for deployment." + echo "" + echo "Secondly, there should be an user on each node which will be" + echo "used to install the corresponding software on master and" + echo "worker nodes. At the same time, this user should be enable to" echo "run the sudo command without input password on the hosts." echo " " echo "Example usages:" - echo " ./startup.sh 10.169.40.171 10.169.41.172 iec 123456" + echo " ./startup.sh" } @@ -28,52 +34,68 @@ deploy_k8s () { INSTALL_SOFTWARE="sudo apt-get update && sudo apt-get install -y git &&\ sudo rm -rf ~/.kube ~/iec &&\ git clone ${REPO_URL} &&\ - cd iec/scripts/ && source k8s_common.sh" + cd iec/src/foundation/scripts/ && source k8s_common.sh" #Automatic deploy the K8s environments on Master node - SETUP_MASTER="cd iec/scripts/ && source k8s_master.sh ${K8S_MASTER_IP}" + SETUP_MASTER="cd iec/src/foundation/scripts/ && source k8s_master.sh ${K8S_MASTER_IP}" sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${INSTALL_SOFTWARE} - sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_MASTER} | tee kubeadm.log + sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_MASTER} | tee ${LOG_FILE} - KUBEADM_JOIN_CMD=$(grep "kubeadm join " ./kubeadm.log) + KUBEADM_JOIN_CMD=$(grep "kubeadm join " ./${LOG_FILE}) + + + #Automatic deploy the K8s environments on each worker-node + SETUP_WORKER="cd iec/src/foundation/scripts/ && source k8s_worker.sh" + + for worker in "${K8S_WORKER_GROUP[@]}" + do + ip_addr="$(cut -d',' -f1 <<<${worker})" + passwd="$(cut -d',' -f2 <<<${worker})" + echo "Install & Deploy on ${ip_addr}. password:${passwd}" + + sshpass -p ${passwd} ssh ${HOST_USER}@${ip_addr} ${INSTALL_SOFTWARE} + sshpass -p ${passwd} ssh ${HOST_USER}@${ip_addr} "echo \"sudo ${KUBEADM_JOIN_CMD}\" >> ./iec/src/foundation/scripts/k8s_worker.sh" + sshpass -p ${passwd} ssh ${HOST_USER}@${ip_addr} ${SETUP_WORKER} + + done - #Automatic deploy the K8s environments on Worker node - SETUP_WORKER="cd iec/scripts/ && source k8s_worker.sh" - sshpass -p ${K8S_WORKERPW} ssh ${HOST_USER}@${K8S_WORKER01_IP} ${INSTALL_SOFTWARE} - sshpass -p ${K8S_WORKERPW} ssh ${HOST_USER}@${K8S_WORKER01_IP} "echo \"sudo ${KUBEADM_JOIN_CMD}\" >> ./iec/scripts/k8s_worker.sh" - sshpass -p ${K8S_WORKERPW} ssh ${HOST_USER}@${K8S_WORKER01_IP} ${SETUP_WORKER} #Deploy etcd & CNI from master node #There may be more options in future. e.g: Calico, Contiv-vpp, Ovn-k8s ... - SETUP_CNI="cd iec/scripts && source setup-cni.sh" + SETUP_CNI="cd iec/src/foundation/scripts && source setup-cni.sh" sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_CNI} } +# +# Check the K8s environments +# +check_k8s_status(){ + set -o xtrace -PASSWD=${4:-"123456"} -HOST_USER=${3:-"iec"} - -K8S_MASTER_IP=${1:-"10.169.40.171"} -K8S_MASTERPW=${PASSWD} - -K8S_WORKER01_IP=${2:-"10.169.41.172"} -K8S_WORKERPW=${PASSWD} + VERIFY_K8S="cd iec/src/foundation/scripts/ && source nginx.sh" + sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${VERIFY_K8S} -REPO_URL="https://gerrit.akraino.org/r/iec" -LOG_FILE="kubeadm.log" + sleep 30 +} -if [ -f "./${LOG_FILE}" ]; then - rm "${LOG_FILE}" -fi # # Init # -if [ $# -lt 4 ] +if [ $1 == "--help" ] || [ $1 == "-h" ]; then display_help exit 0 fi +# Read the configuration file +source config + +echo "The number of K8s-Workers:${#K8S_WORKER_GROUP[@]}" + +rm -f "${LOG_FILE}" + deploy_k8s + +check_k8s_status