add
This commit is contained in:
235
1-outside-deploy/1-base-env-shell/3-bootUPk8s.sh
Normal file
235
1-outside-deploy/1-base-env-shell/3-bootUPk8s.sh
Normal file
@@ -0,0 +1,235 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
### 需要修改以下的内容 ###
|
||||
### 需要修改以下的内容 ###
|
||||
### 需要修改以下的内容 ###
|
||||
|
||||
# 理论上来说,能访问公网的服务器 用来部署Harbor服务器
|
||||
# 所有的主机均可以访问公网的话,填写 除了harbor服务器的 其他所有主机的地址
|
||||
PrivateServerIPs=(192.168.8.66 192.168.8.67 192.168.8.68) # 内网服务器的IP地址,不包括可以访问公网IP的服务器
|
||||
|
||||
### 需要修改以上的内容 ###
|
||||
### 需要修改以上的内容 ###
|
||||
### 需要修改以上的内容 ###
|
||||
|
||||
RED="31m" ## 姨妈红
|
||||
GREEN="32m" ## 水鸭青
|
||||
YELLOW="33m" ## 鸭屎黄
|
||||
PURPLE="35m" ## 基佬紫
|
||||
BLUE="36m" ## 天依蓝
|
||||
|
||||
colorEcho() {
|
||||
# shellcheck disable=SC2145
|
||||
echo -e "\033[${1}${@:2}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
check_root() {
|
||||
if [[ $EUID != 0 ]]; then
|
||||
colorEcho ${RED} "当前非root账号(或没有root权限),无法继续操作,请更换root账号!"
|
||||
colorEcho ${YELLOW} "使用sudo -命令获取临时root权限(执行后可能会提示输入root密码)"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
startFunc(){
|
||||
colorEcho ${PURPLE} "---------------------------------------------------------------------------------"
|
||||
colorEcho ${BLUE} "开始执行 启动RKE集群的操作 ………"
|
||||
echo ""
|
||||
|
||||
colorEcho ${BLUE} "本脚本的运行有一些列的前提依赖,请确定以下的项目都已完成!!!!"
|
||||
colorEcho ${YELLOW} "----------------------------------------------------------"
|
||||
colorEcho ${RED} "1. 完成基础环境初始化,将rke系统镜像均上传至私有Harbor中!"
|
||||
colorEcho ${RED} "2. 配置并修改好 rke集群的模板文件,命名为 cluster.yml !!"
|
||||
colorEcho ${RED} "3. ……"
|
||||
colorEcho ${YELLOW} "----------------------------------------------------------"
|
||||
|
||||
while true; do
|
||||
colorEcho ${RED} "请确保您已经将上述的项目完成!!"
|
||||
read -r -p "请输入yes进行确认,脚本才可继续运行!!" input
|
||||
case $input in
|
||||
yes)
|
||||
colorEcho ${GREEN} "您已确认上述的项目均已完成!!"
|
||||
colorEcho ${GREEN} "----------------------------------------------------------"
|
||||
echo ""
|
||||
colorEcho ${BLUE} "开始执行 RKE集群的启动过程!!!"
|
||||
echo ""
|
||||
main
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
colorEcho ${RED} "输入有误!!! 请输入 >> yes << 进行确认"
|
||||
break
|
||||
colorEcho ${RED} "-----------------------------------------------------"
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
installRKE(){
|
||||
colorEcho ${PURPLE} "---------------------------------------------------------------------------------"
|
||||
colorEcho ${BLUE} "开始下载并安装 RKE 工具 ………"
|
||||
echo ""
|
||||
|
||||
colorEcho ${BLUE} "开始从rancher镜像下载rke工具……"
|
||||
wget http://rancher-mirror.cnrancher.com/rke/v1.2.6/rke_linux-amd64
|
||||
if [ -s rke_linux-amd64 ]; then
|
||||
colorEcho ${GREEN} "rke工具下载完成!"
|
||||
chmod +x rke_linux-amd64
|
||||
mv ./rke_linux-amd64 /usr/local/bin/rke
|
||||
colorEcho ${GREEN} "----------------------------------------------------------"
|
||||
rke --version
|
||||
colorEcho ${GREEN} "----------------------------------------------------------"
|
||||
rke config --list-version --all
|
||||
echo ""
|
||||
colorEcho ${BLUE} "开始从rancher镜像下载 kubectl 工具……"
|
||||
wget http://rancher-mirror.cnrancher.com/kubectl/v1.20.4/linux-amd64-v1.20.4-kubectl
|
||||
chmod +x linux-amd64-v1.20.4-kubectl
|
||||
mv linux-amd64-v1.20.4-kubectl /usr/local/bin/kubectl
|
||||
colorEcho ${GREEN} "----------------------------------------------------------"
|
||||
kubectl version
|
||||
colorEcho ${GREEN} "----------------------------------------------------------"
|
||||
else
|
||||
colorEcho ${RED} "rke工具下载失败!!!脚本无法继续运行,请手动下载rke工具!"
|
||||
colorEcho ${RED} "rke工具下载失败!!!脚本无法继续运行,请手动下载rke工具!"
|
||||
colorEcho ${RED} "rke工具下载失败!!!脚本无法继续运行,请手动下载rke工具!"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
createRKEInstallerUser(){
|
||||
colorEcho ${PURPLE} "---------------------------------------------------------------------------------"
|
||||
colorEcho ${BLUE} "开始创建 rke-installer 用户………"
|
||||
echo ""
|
||||
useradd rke-installer
|
||||
echo "rke-installer
|
||||
rke-installer
|
||||
" | passwd rke-installer
|
||||
#将登陆用户develop加入到docker用户组中
|
||||
gpasswd -a rke-installer docker
|
||||
#更新用户组
|
||||
newgrp docker
|
||||
echo ""
|
||||
if [ -d /home/rke-installer ]; then
|
||||
colorEcho ${GREEN} "rke-installer 用户创建成功!! "
|
||||
echo ""
|
||||
else
|
||||
colorEcho ${YELLOW} "检测到 rke-installer 用户已经存在"
|
||||
fi
|
||||
|
||||
if [[ -s cluster.yaml || -s cluster.yml ]]; then
|
||||
colorEcho ${BLUE} "开始将 cluster.yaml文件复制到 rke-installer目录下…………"
|
||||
mv cluster.y* /home/rke-installer/cluster.yml
|
||||
if [ -s /home/rke-installer/cluster.yml ]; then
|
||||
colorEcho ${BLUE} "cluster.yml文件已经放置完成!"
|
||||
chown rke-installer:rke-installer /home/rke-installer/cluster.yml
|
||||
else
|
||||
colorEcho ${RED} "当前目录下未检测到 rke集群的模板文件!!"
|
||||
colorEcho ${RED} "程序无法继续,将退出!!"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
colorEcho ${RED} "当前目录下未检测到 rke集群的模板文件!!"
|
||||
colorEcho ${RED} "程序无法继续,将退出!!"
|
||||
echo ""
|
||||
colorEcho ${YELLOW} "--------------------------------------------------"
|
||||
colorEcho ${RED} "请创建RKE集群的模板文件,并命名为 cluster.yml "
|
||||
colorEcho ${RED} "请创建RKE集群的模板文件,并命名为 cluster.yml "
|
||||
colorEcho ${RED} "请创建RKE集群的模板文件,并命名为 cluster.yml "
|
||||
colorEcho ${YELLOW} "--------------------------------------------------"
|
||||
return 1
|
||||
fi
|
||||
|
||||
colorEcho ${BLUE} "开始切换当前用户至 rke-installer "
|
||||
su rke-installer
|
||||
echo ""
|
||||
colorEcho ${BLUE} "请检查rke-installer用户能否执行 docker ps 命令!!"
|
||||
docker ps
|
||||
colorEcho ${BLUE} "----------------------------------------------------------"
|
||||
}
|
||||
|
||||
generateRKEUserKey(){
|
||||
colorEcho ${PURPLE} "---------------------------------------------------------------------------------"
|
||||
colorEcho ${BLUE} "开始创建 rke-installer用户的 ssh key ……"
|
||||
echo ""
|
||||
su rke-installer
|
||||
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
|
||||
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
|
||||
chmod 600 ~/.ssh/authorized_keys
|
||||
colorEcho ${GREEN} "--------------------------------------------------------------"
|
||||
colorEcho ${GREEN} "-----------本机配置完成!-------------"
|
||||
echo ""
|
||||
|
||||
for ip in "${PrivateServerIPs[@]}"; do
|
||||
colorEcho ${BLUE} "请手动将如下的命令,以 root 权限在主机 ${ip} 上运行"
|
||||
colorEcho ${BLUE} "请手动将如下的命令,以 root 权限在主机 ${ip} 上运行"
|
||||
colorEcho ${BLUE} "请手动将如下的命令,以 root 权限在主机 ${ip} 上运行"
|
||||
colorEcho ${BLUE} "-----------------------------------------------"
|
||||
echo ""
|
||||
echo ""
|
||||
colorEcho ${RED} " 请以 root 角色 运行!!! "
|
||||
colorEcho ${RED} " 请以 root 角色 运行!!! "
|
||||
colorEcho ${RED} " 请以 root 角色 运行!!! "
|
||||
echo ""
|
||||
echo "useradd rke-installer && echo \"rke-installer
|
||||
rke-installer
|
||||
\" | passwd rke-installer && gpasswd -a rke-installer docker && newgrp docker && su rke-installer && docker ps "
|
||||
echo ""
|
||||
echo "clear && ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa && echo \"$(cat ~/.ssh/id_rsa.pub)\" >> ~/.ssh/authorized_keys && echo \"\" && cat ~/.ssh/authorized_keys"
|
||||
echo ""
|
||||
echo ""
|
||||
while true; do
|
||||
colorEcho ${RED} "请确保您已经将上述的命令在主机${ip}上执行了!!"
|
||||
read -r -p "请输入yes进行确认,脚本才可继续运行!!" input
|
||||
case $input in
|
||||
yes)
|
||||
colorEcho ${GREEN} "您已确认在主机${ip}上添加了私有的ssh key!"
|
||||
echo ""
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
colorEcho ${RED} "输入有误!!! 请输入 >> yes << 进行确认"
|
||||
colorEcho ${RED} "请在主机${ip}上执行上述命令!!!"
|
||||
colorEcho ${RED} "否则本脚本的功能会失效!!"
|
||||
colorEcho ${RED} "-----------------------------------------------------"
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
startRKECLuster(){
|
||||
colorEcho ${PURPLE} "---------------------------------------------------------------------------------"
|
||||
colorEcho ${BLUE} "开始 启动 rke集群 !!!"
|
||||
colorEcho ${BLUE} "开始 启动 rke集群 !!!"
|
||||
colorEcho ${BLUE} "开始 启动 rke集群 !!!"
|
||||
echo ""
|
||||
if [[ $(pwd) == "/home/rke-installer" ]]; then
|
||||
colorEcho ${BLUE} "检测到当前目录为 /home/rke-installer"
|
||||
echo ""
|
||||
colorEcho ${BLUE} "开始执行 RKE 集群的启动过程 !!!"
|
||||
colorEcho ${BLUE} "-------------------------------------------------------------"
|
||||
for i in {3..1..-1}; do
|
||||
colorEcho ${BLUE} "倒计时开始 ->> $i 秒 <<-,准备启动RKE,上文的日志输出将会消失!!"
|
||||
sleep 2
|
||||
done
|
||||
clear
|
||||
rke up
|
||||
else
|
||||
colorEcho ${BLUE} "当前目录不为 /home/rke-installer,开始跳转目录!"
|
||||
cd /home/rke-installer
|
||||
startRKECLuster
|
||||
fi
|
||||
}
|
||||
|
||||
main(){
|
||||
check_root
|
||||
|
||||
generateRKEUserKey || return $?
|
||||
startRKECLuster || return $?
|
||||
}
|
||||
|
||||
startFunc
|
||||
Reference in New Issue
Block a user