From 8ad595fccba082c866bf1d62cf9a1c9470f50d2c Mon Sep 17 00:00:00 2001 From: ylzhangah <1194926515@qq.com> Date: Thu, 16 Oct 2025 17:10:47 +0800 Subject: [PATCH] add check_cpu_fphp --- deploy/scripts/1-check-env/check_env_en.sh | 62 ++++++++++++++++------ deploy/scripts/1-check-env/check_env_zh.sh | 37 ++++++++++++- 2 files changed, 82 insertions(+), 17 deletions(-) diff --git a/deploy/scripts/1-check-env/check_env_en.sh b/deploy/scripts/1-check-env/check_env_en.sh index 0ab87a24c..861162055 100755 --- a/deploy/scripts/1-check-env/check_env_en.sh +++ b/deploy/scripts/1-check-env/check_env_en.sh @@ -76,7 +76,7 @@ function check_os_version { function check_hostname { local current_hostname=$(cat /etc/hostname) if [[ -z "$current_hostname" ]]; then - echo -e "${COLOR_ERROR}[Error] Hostname not set, automatically set to localhost${COLOR_RESET}" + echo -e "${COLOR_ERROR}[Error] Hostname not set, automatically setting to localhost${COLOR_RESET}" set_hostname "localhost" return $? else @@ -89,7 +89,7 @@ function check_hostname { function set_hostname { if ! command -v hostnamectl &> /dev/null; then echo "$1" > /etc/hostname - echo -e "${COLOR_SUCCESS}[Success] Manual hostname set successful${COLOR_RESET}" + echo -e "${COLOR_SUCCESS}[Success] Manual hostname setting successful${COLOR_RESET}" return 0 fi @@ -97,7 +97,7 @@ function set_hostname { echo -e "${COLOR_SUCCESS}[Success] Hostname set successfully${COLOR_RESET}" return 0 else - echo -e "${COLOR_ERROR}[Error] Hostname set failed${COLOR_RESET}" + echo -e "${COLOR_ERROR}[Error] Hostname setting failed${COLOR_RESET}" return 1 fi } @@ -105,7 +105,7 @@ function set_hostname { function check_dns { echo -e "${COLOR_INFO}[Info] Checking DNS settings${COLOR_RESET}" if grep -q "^nameserver" /etc/resolv.conf; then - echo -e "${COLOR_SUCCESS}[Success] DNS configured${COLOR_RESET}" + echo -e "${COLOR_SUCCESS}[Success] DNS is configured${COLOR_RESET}" return 0 fi @@ -113,7 +113,7 @@ function check_dns { echo -e "${COLOR_WARNING}[Warning] Offline mode: Please manually configure internal DNS server${COLOR_RESET}" return 0 else - echo -e "${COLOR_ERROR}[Error] DNS not configured, automatically set to 8.8.8.8${COLOR_RESET}" + echo -e "${COLOR_ERROR}[Error] DNS not configured, automatically setting to 8.8.8.8${COLOR_RESET}" set_dns "8.8.8.8" return $? fi @@ -129,16 +129,16 @@ function set_dns { if nmcli con mod "$net_ic" ipv4.dns "$1" && nmcli con mod "$net_ic" ipv4.ignore-auto-dns yes; then nmcli con down "$net_ic" && nmcli con up "$net_ic" - echo -e "${COLOR_SUCCESS}[Success] DNS set successfully${COLOR_RESET}" + echo -e "${COLOR_SUCCESS}[Success] DNS setting successful${COLOR_RESET}" return 0 else - echo -e "${COLOR_ERROR}[Error] DNS set failed${COLOR_RESET}" + echo -e "${COLOR_ERROR}[Error] DNS setting failed${COLOR_RESET}" return 1 fi else cp /etc/resolv.conf /etc/resolv.conf.bak echo "nameserver $1" >> /etc/resolv.conf - echo -e "${COLOR_SUCCESS}[Success] Manual DNS set successful${COLOR_RESET}" + echo -e "${COLOR_SUCCESS}[Success] Manual DNS setting successful${COLOR_RESET}" return 0 fi } @@ -179,7 +179,7 @@ function check_network { echo -e "${COLOR_SUCCESS}[Success] Network connection normal${COLOR_RESET}" return 0 else - echo -e "${COLOR_ERROR}[Error] Cannot access external network${COLOR_RESET}" + echo -e "${COLOR_ERROR}[Error] Unable to access external network${COLOR_RESET}" return 1 fi } @@ -198,15 +198,44 @@ function check_firewall { return 0 } +function check_cpu_fphp { + echo -e "${COLOR_INFO}[Info] Checking if CPU supports MongoDB(v7.0.16) deployment${COLOR_RESET}" + + # Check if /proc/cpuinfo exists + if [[ ! -f "/proc/cpuinfo" ]]; then + echo -e "${COLOR_ERROR}[Error] Unable to access /proc/cpuinfo file${COLOR_RESET}" + return 1 + fi + + # Get CPU architecture + local architecture=$(uname -m) + + # Only check FPHP on ARM architecture + if [[ "$architecture" == "aarch64" || "$architecture" == "arm64" ]]; then + if grep -q "fphp" /proc/cpuinfo; then + echo -e "${COLOR_SUCCESS}[Success] ARM CPU supports FPHP feature${COLOR_RESET}" + echo -e "${COLOR_SUCCESS}[Success] CPU meets MongoDB deployment requirements${COLOR_RESET}" + return 0 + else + echo -e "${COLOR_ERROR}[Error] CPU does not support FPHP, cannot deploy MongoDB v7.0.16, consider downgrading MongoDB version${COLOR_RESET}" + return 1 + fi + else + # Non-ARM architecture, log info and continue + echo -e "${COLOR_INFO}[Info] $architecture architecture, skipping FPHP check${COLOR_RESET}" + return 0 + fi +} + function prepare_offline { echo -e "${COLOR_INFO}[Info] Preparing offline deployment environment..." mkdir -p /home/eulercopilot/images mkdir -p /home/eulercopilot/tools mkdir -p /home/eulercopilot/models - echo -e "1. Please ensure offline installation images are uploaded to /home/eulercopilot/images" - echo -e "2. Please confirm local software repository is configured" - echo -e "3. All tool packages pre-downloaded to local directory /home/eulercopilot/tools" - echo -e "4. All model files pre-downloaded to local directory /home/eulercopilot/models${COLOR_RESET}" + echo -e "1. Please ensure the offline installation image has been uploaded to /home/eulercopilot/images" + echo -e "2. Please confirm the local software repository is configured" + echo -e "3. All toolkits are pre-downloaded to local directory /home/eulercopilot/tools" + echo -e "4. All model files are pre-downloaded to local directory /home/eulercopilot/models${COLOR_RESET}" } function main { @@ -236,12 +265,15 @@ function main { check_selinux || return 1 check_firewall || return 1 + # New CPU FPHP check + check_cpu_fphp || return 1 + # Final deployment prompt echo -e "\n${COLOR_SUCCESS}#####################################" if $OFFLINE_MODE; then - echo -e "# Environment check complete, ready for offline deployment #" + echo -e "# Environment check complete, preparing for offline deployment #" else - echo -e "# Environment check complete, ready for online deployment #" + echo -e "# Environment check complete, preparing for online deployment #" fi echo -e "#####################################${COLOR_RESET}" return 0 diff --git a/deploy/scripts/1-check-env/check_env_zh.sh b/deploy/scripts/1-check-env/check_env_zh.sh index 4bc9c47f9..44b834438 100755 --- a/deploy/scripts/1-check-env/check_env_zh.sh +++ b/deploy/scripts/1-check-env/check_env_zh.sh @@ -1,4 +1,5 @@ #!/bin/bash + # 颜色定义 COLOR_INFO='\033[34m' # 蓝色信息 COLOR_SUCCESS='\033[32m' # 绿色成功 @@ -172,7 +173,7 @@ check_disk_space() { function check_network { echo -e "${COLOR_INFO}[Info] 检查网络连接...${COLOR_RESET}" - + # 使用TCP检查代替curl if timeout 5 bash -c 'cat < /dev/null > /dev/tcp/www.baidu.com/80' 2>/dev/null; then echo -e "${COLOR_SUCCESS}[Success] 网络连接正常${COLOR_RESET}" @@ -197,6 +198,35 @@ function check_firewall { return 0 } +function check_cpu_fphp { + echo -e "${COLOR_INFO}[Info] 检查CPU是否支持MongoDB(v7.0.16)部署${COLOR_RESET}" + + # 检查/proc/cpuinfo是否存在 + if [[ ! -f "/proc/cpuinfo" ]]; then + echo -e "${COLOR_ERROR}[Error] 无法访问/proc/cpuinfo文件${COLOR_RESET}" + return 1 + fi + + # 获取CPU架构 + local architecture=$(uname -m) + + # 只在ARM架构上检查FPHP + if [[ "$architecture" == "aarch64" || "$architecture" == "arm64" ]]; then + if grep -q "fphp" /proc/cpuinfo; then + echo -e "${COLOR_SUCCESS}[Success] ARM的CPU支持FPHP功能${COLOR_RESET}" + echo -e "${COLOR_SUCCESS}[Success] CPU满足MongoDB部署要求${COLOR_RESET}" + return 0 + else + echo -e "${COLOR_ERROR}[Error] CPU不支持FPHP,无法部署MongoDBv7.0.16, 建议降低mongo的版本${COLOR_RESET}" + return 1 + fi + else + # 非ARM架构,记录信息并继续 + echo -e "${COLOR_INFO}[Info] $architecture 架构,跳过FPHP检查${COLOR_RESET}" + return 0 + fi +} + function prepare_offline { echo -e "${COLOR_INFO}[Info] 准备离线部署环境..." mkdir -p /home/eulercopilot/images @@ -212,7 +242,7 @@ function main { check_user || return 1 check_os_version || return 1 check_hostname || return 1 - + # 网络检查与模式判断 if check_network; then OFFLINE_MODE=false @@ -234,6 +264,9 @@ function main { check_selinux || return 1 check_firewall || return 1 + + # 新增CPU FPHP检查 + check_cpu_fphp || return 1 # 最终部署提示 echo -e "\n${COLOR_SUCCESS}#####################################" -- Gitee