diff --git a/deploy/scripts/2-install-tools/install_tools.sh b/deploy/scripts/2-install-tools/install_tools.sh index 804c735da93d2b2c5e69fca808886a2d13390b55..8536d036514b1d814fb13265fc911c3fb4f45c65 100755 --- a/deploy/scripts/2-install-tools/install_tools.sh +++ b/deploy/scripts/2-install-tools/install_tools.sh @@ -338,6 +338,16 @@ function check_k3s_status() { fi } +check_hub_connection() { + if curl -sSf http://hub.oepkgs.net >/dev/null 2>&1; then + echo -e "[Info] 镜像站连接正常" + return 0 + else + echo -e "[Error] 镜像站连接失败" + return 1 + fi +} + function main { # 创建工具目录 mkdir -p "$TOOLS_DIR" @@ -356,13 +366,6 @@ function main { else echo -e "[Info] K3s 已经安装,跳过安装步骤" fi - # 优先检查网络 - if check_network; then - echo -e "\033[32m[Info] 在线环境,跳过镜像导入\033[0m" - else - echo -e "\033[33m[Info] 离线环境,开始导入本地镜像,请确保本地目录已存在所有镜像文件\033[0m" - bash "$IMPORT_SCRIPT/9-other-script/import_images.sh" -v "$eulercopilot_version" - fi # 安装Helm(如果尚未安装) if ! command -v helm &> /dev/null; then @@ -374,6 +377,14 @@ function main { ln -sf /etc/rancher/k3s/k3s.yaml ~/.kube/config check_k3s_status + # 优先检查网络 + if check_hub_connection; then + echo -e "\033[32m[Info] 在线环境,跳过镜像导入\033[0m" + else + echo -e "\033[33m[Info] 离线环境,开始导入本地镜像,请确保本地目录已存在所有镜像文件\033[0m" + bash "$IMPORT_SCRIPT/9-other-script/import_images.sh" -v "$eulercopilot_version" + fi + echo -e "\n\033[32m=== 全部工具安装完成 ===\033[0m" echo -e "K3s 版本:$(k3s --version | head -n1)" echo -e "Helm 版本:$(helm version --short)" diff --git a/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh b/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh index 8718c8cba4c9e17f5237707b1df81baa3a346557..412db7064e3cada67ba03affa111513e250e2b2b 100755 --- a/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh +++ b/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh @@ -27,6 +27,32 @@ DEPLOY_DIR="$( )" + +# 安装成功信息显示函数 +show_success_message() { + local host=$1 + local arch=$2 + + echo -e "\n${GREEN}==================================================${NC}" + echo -e "${GREEN} EulerCopilot 部署完成! ${NC}" + echo -e "${GREEN}==================================================${NC}" + + echo -e "${YELLOW}访问信息:${NC}" + echo -e "EulerCopilot UI: ${eulercopilot_address}" + echo -e "AuthHub 管理界面: ${authhub_address}" + + echo -e "\n${YELLOW}系统信息:${NC}" + echo -e "内网IP: ${host}" + echo -e "系统架构: $(uname -m) (识别为: ${arch})" + echo -e "插件目录: ${PLUGINS_DIR}" + echo -e "Chart目录: ${DEPLOY_DIR}/chart/" + + echo -e "${BLUE}操作指南:${NC}" + echo -e "1. 查看集群状态: kubectl get all -n $NAMESPACE" + echo -e "2. 查看实时日志: kubectl logs -n $NAMESPACE -f deployment/$NAMESPACE" + echo -e "3. 查看POD状态:kubectl get pods -n $NAMESPACE" +} + # 获取系统架构 get_architecture() { local arch=$(uname -m) @@ -203,17 +229,19 @@ uninstall_eulercopilot() { echo -e "${YELLOW}未找到需要清理的Helm Release: euler-copilot${NC}" fi - # 删除 PVC: framework-semantics-claim - local pvc_name="framework-semantics-claim" - if kubectl get pvc "$pvc_name" -n euler-copilot &>/dev/null; then - echo -e "${GREEN}找到PVC: ${pvc_name},开始清理...${NC}" - if ! kubectl delete pvc "$pvc_name" -n euler-copilot --force --grace-period=0; then - echo -e "${RED}错误:删除PVC ${pvc_name} 失败!${NC}" >&2 - return 1 + # 删除 PVC: framework-semantics-claim 和 web-static + local pvc_names=("framework-semantics-claim" "web-static") + for pvc_name in "${pvc_names[@]}"; do + if kubectl get pvc "$pvc_name" -n euler-copilot &>/dev/null; then + echo -e "${GREEN}找到PVC: ${pvc_name},开始清理...${NC}" + if ! kubectl delete pvc "$pvc_name" -n euler-copilot --force --grace-period=0; then + echo -e "${RED}错误:删除PVC ${pvc_name} 失败!${NC}" >&2 + return 1 + fi + else + echo -e "${YELLOW}未找到需要清理的PVC: ${pvc_name}${NC}" fi - else - echo -e "${YELLOW}未找到需要清理的PVC: ${pvc_name}${NC}" - fi + done # 删除 Secret: euler-copilot-system local secret_name="euler-copilot-system" @@ -240,6 +268,7 @@ modify_yaml() { # 添加其他必填参数 set_args+=( + "--set" "globals.arch=$arch" "--set" "login.client.id=${client_id}" "--set" "login.client.secret=${client_secret}" "--set" "domain.euler_copilot=${eulercopilot_address}" @@ -295,11 +324,10 @@ pre_install_checks() { # 执行安装 execute_helm_install() { - local arch=$1 echo -e "${BLUE}开始部署EulerCopilot(架构: $arch)...${NC}" >&2 enter_chart_directory - helm upgrade --install $NAMESPACE -n $NAMESPACE ./euler_copilot --set globals.arch=$arch --create-namespace || { + helm upgrade --install $NAMESPACE -n $NAMESPACE ./euler_copilot --create-namespace || { echo -e "${RED}Helm 安装 EulerCopilot 失败!${NC}" >&2 exit 1 } @@ -382,7 +410,7 @@ main() { modify_yaml "$host" "$preserve_models" echo -e "${BLUE}开始Helm安装...${NC}" - execute_helm_install "$arch" + execute_helm_install if check_pods_status; then echo -e "${GREEN}所有组件已就绪!${NC}" @@ -392,30 +420,4 @@ main() { fi } -# 添加安装成功信息显示函数 -show_success_message() { - local host=$1 - local arch=$2 - - - echo -e "\n${GREEN}==================================================${NC}" - echo -e "${GREEN} EulerCopilot 部署完成! ${NC}" - echo -e "${GREEN}==================================================${NC}" - - echo -e "${YELLOW}访问信息:${NC}" - echo -e "EulerCopilot UI: ${eulercopilot_address}" - echo -e "AuthHub 管理界面: ${authhub_address}" - - echo -e "\n${YELLOW}系统信息:${NC}" - echo -e "内网IP: ${host}" - echo -e "系统架构: $(uname -m) (识别为: ${arch})" - echo -e "插件目录: ${PLUGINS_DIR}" - echo -e "Chart目录: ${DEPLOY_DIR}/chart/" - - echo -e "${BLUE}操作指南:${NC}" - echo -e "1. 查看集群状态: kubectl get all -n $NAMESPACE" - echo -e "2. 查看实时日志: kubectl logs -n $NAMESPACE -f deployment/$NAMESPACE" - echo -e "3. 查看POD状态:kubectl get pods -n $NAMESPACE" -} - main "$@"