openEuler服务器离线部署实战:无外网环境下如何搞定JDK 1.8、MySQL 8.0和Redis 6.2

张开发
2026/4/9 20:35:06 15 分钟阅读

分享文章

openEuler服务器离线部署实战:无外网环境下如何搞定JDK 1.8、MySQL 8.0和Redis 6.2
openEuler服务器离线部署实战无外网环境下如何搞定JDK 1.8、MySQL 8.0和Redis 6.2在企业级IT基础设施中隔离网络环境下的服务器部署一直是系统管理员面临的特殊挑战。当服务器无法连接互联网时从操作系统安装到中间件部署的每个环节都需要重新设计技术方案。本文将基于openEuler 24.03 LTS SP2系统详细解析如何构建完整的离线部署体系涵盖从本地镜像仓库搭建到核心服务部署的全流程实战经验。1. 离线环境构建基础1.1 镜像选择策略openEuler提供三种安装镜像类型在离线环境中需要谨慎选择镜像类型体积包含内容适用场景Offline Standard ISO~1.2GB最小化系统核心组件资源受限的纯基础环境Offline Everything ISO~6.8GB全量软件包及依赖需要完整开发工具链的环境Network Install ISO~700MB仅安装程序需网络连接不适用于离线环境实际操作建议生产环境推荐使用Everything镜像它自带了约15,000个软件包能覆盖绝大多数开发依赖。我们曾在一个金融项目中采用Standard镜像后发现缺少大量基础工具最终不得不重新部署。1.2 本地仓库构建通过Everything ISO创建本地仓库的步骤# 挂载ISO镜像 mkdir -p /mnt/iso mount -o loop openEuler-24.03-LTS-SP2-everything-x86_64.iso /mnt/iso # 配置本地repo源 cat /etc/yum.repos.d/local.repo EOF [local-base] namelocal-base baseurlfile:///mnt/iso enabled1 gpgcheck0 EOF # 清理并重建缓存 dnf clean all dnf makecache注意若需在多台机器部署建议将ISO内容复制到内网HTTP服务器改用http://协议访问仓库2. 核心组件离线部署2.1 JDK 1.8部署方案在安全合规要求严格的场景OpenJDK通常是更优选择。以下是离线安装OpenJDK 8的完整流程从本地仓库查询可用版本dnf list available | grep java-1.8.0安装完整开发套件dnf install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel环境变量配置技巧# 获取实际安装路径 JAVA_HOME$(dirname $(dirname $(readlink -f $(which java)))) echo export JAVA_HOME${JAVA_HOME} /etc/profile.d/java.sh echo export PATH$JAVA_HOME/bin:$PATH /etc/profile.d/java.sh source /etc/profile性能调优建议在/etc/profile.d/java.sh中添加以下参数可优化内存管理export JAVA_OPTS-XX:UseG1GC -Xms2g -Xmx2g -XX:MaxGCPauseMillis2002.2 MySQL 8.0深度配置对于MySQL的离线安装推荐使用官方tar包而非RPM方式便于自定义安装路径# 解压安装 tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz -C /usr/local mv /usr/local/mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/mysql # 初始化数据库重点记录临时密码 /usr/local/mysql/bin/mysqld --initialize --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql/data关键配置文件/etc/my.cnf的优化项[mysqld] # 事务隔离级别 transaction_isolationREAD-COMMITTED # 连接池配置 table_open_cache4000 # 内存分配 innodb_buffer_pool_size4G # 日志设置 binlog_expire_logs_seconds604800安全提醒务必修改默认root密码并创建专用应用账户禁止远程root登录2.3 Redis 6.2高可用配置Redis的离线编译需要特别注意依赖问题以下是经过验证的编译方案# 安装编译依赖需提前配置本地仓库 dnf install -y gcc make tcl # 编译安装 tar xzf redis-6.2.14.tar.gz cd redis-6.2.14 make BUILD_TLSyes USE_SYSTEMDyes make install PREFIX/usr/local/redis生产环境推荐配置/usr/local/redis/etc/redis.confbind 0.0.0.0 protected-mode yes port 6379 requirepass YourStrongPassword daemonize yes dir /var/lib/redis appendonly yes # 内存策略 maxmemory 4gb maxmemory-policy allkeys-lru3. 部署自动化实践3.1 脚本化部署框架建议采用模块化脚本结构例如deploy/ ├── jdk.sh ├── mysql.sh ├── redis.sh └── common.sh其中common.sh包含通用函数#!/bin/bash LOG_FILE/var/log/deploy_$(date %Y%m%d).log log() { echo [$(date %Y-%m-%d %H:%M:%S)] $1 | tee -a $LOG_FILE } check_dependency() { if ! command -v $1 /dev/null; then log 错误缺少依赖 $1 exit 1 fi }3.2 异常处理机制在关键步骤添加健壮性检查install_mysql() { log 开始MySQL安装... systemctl stop mysqld 2/dev/null tar -xvf $MYSQL_PKG -C /usr/local || { log MySQL解压失败 return 1 } /usr/local/mysql/bin/mysqld --initialize --usermysql \ chown -R mysql:mysql /usr/local/mysql || { log MySQL初始化失败 return 2 } }4. 运维保障体系4.1 资源监控方案离线环境推荐使用sysstat自定义脚本# 安装监控工具 dnf install -y sysstat # 配置数据收集 cat /etc/cron.d/monitor EOF */5 * * * * root /usr/lib64/sa/sa1 1 1 EOF # 分析脚本示例 #!/bin/bash echo CPU使用TOP5 ps -eo pcpu,pid,user,args | sort -k1 -nr | head -6 echo 内存使用TOP5 ps -eo pmem,pid,user,args | sort -k1 -nr | head -64.2 日志管理策略统一日志收集方案# 创建日志轮转配置 cat /etc/logrotate.d/app_logs EOF /var/log/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 root adm } EOF对于MySQL慢查询日志建议添加监控-- 在MySQL中设置 SET GLOBAL slow_query_log ON; SET GLOBAL long_query_time 2; SET GLOBAL log_queries_not_using_indexes ON;

更多文章