1. 脚本使用说明
适用场景:能访问外网,直接能访问到https://www.klquan.com服务。
配置步骤:
- 无需任何配置
- 直接使用下方的命令即可
适用场景:不能访问外网,但有能转发Nginx且443端口的根路径没被使用的服务器。
配置步骤:
- 在中转服务器(如华为云)安装nginx
- 配置nginx配置文件:
客户端添加hosts:
然后就可以跟外网一样的直接使用命令了。
适用场景:完全不能访问外网,且没有可转发Nginx的内网环境。
配置步骤:
- 在内网搭建一个nginx服务器
- 上传files.tar.gz到nginx家目录下并解压(联系孔令泉获取最新版本)
- 配置nginx配置文件:
客户端添加hosts:
然后就可以跟外网一样的直接使用命令了。
2. 脚本分类与使用
2.1 脚本-Linux工具类
系统运维工具脚本,用于系统初始化、配置优化和网络工具安装。
适用场景:目前测试通的是centos系统,别的系统后期会加上。
系统初始化脚本,优化系统配置
- 修改命令提示符
- 关闭防火墙
- 关闭selinux
- 优化SSH配置
- 调整系统参数
配置yum源
- 备份现有yum源
- 下载阿里云的epel源
- 下载阿里云的Base源
- 下载用友内网的源
frp客户端安装
- 把本机的22端口映射到外网
- 访问形式:22+最后一段IP
自动签发CA证书
- 使用cfssl_1.6.5版本工具签发
- 证书生成之后自动删除中间垃圾
2.2 脚本-服务安装类
传统方式安装的各类服务器软件,包括数据库、Web服务器、开发环境等。
适用场景:目前测试通的是centos系统,别的系统后期会加上
Docker容器引擎
Docker编排工具
Java开发环境
关系型数据库
Web服务器
Java应用服务器
内存数据库
NPM编程工具
Python编程语言
node_exporter客户端安装
- 自动安装node_exporter服务
2.3 脚本-Docker部署类
基于Docker容器化部署的服务,快速启动和管理容器化应用。
适用场景:已安装好Docker且能联网(后期会优化,把镜像做成tar包放本地)。
| 服务 | 命令 | 说明 |
|---|---|---|
| Tomcat | curl -sSL --basic http://www.klquan.com/scripts/docker/tomcat_docker.sh | bash |
-p 8080:8080,挂载webapps、conf、logs目录 |
| Nginx | curl -sSL --basic http://www.klquan.com/scripts/docker/nginx_docker.sh | bash |
-p 80:80 -p 443:443,挂载配置和日志目录 |
| MySQL | curl -sSL --basic http://www.klquan.com/scripts/docker/mysql_docker.sh | bash |
-p 3306:3306,挂载数据和配置目录 |
| Redis | curl -sSL --basic http://www.klquan.com/scripts/docker/redis_docker.sh | bash |
-p 6379:6379,挂载配置和数据目录 |
| Zookeeper | curl -sSL --basic http://www.klquan.com/scripts/docker/zookeeper_docker.sh | bash |
-p 2181:2181,挂载数据、日志和配置目录 |
| RabbitMQ | curl -sSL --basic http://www.klquan.com/scripts/docker/rabbitmq_docker.sh | bash |
-p 5672:5672 -p 15672:15672,配置Erlang Cookie |
2.4 脚本-离线安装类
针对无外网连接环境的安装方案,需要提前下载安装包到本地。
适用场景:针对完全不能联网的内网机器(需要自己想办法把安装包和脚本放到机器上)。
| 服务 | 下载脚本 | 下载安装包 | 执行安装 |
|---|---|---|---|
| Redis | wget http://www.klquan.com/scripts/offline/redis_offline.sh |
wget http://www.klquan.com/scripts/package/redis-5.0.7.tar.gz |
sh redis_offline.sh |
| MySQL | wget http://www.klquan.com/scripts/offline/mysql_offline.sh |
wget http://www.klquan.com/scripts/package/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz |
sh mysql_offline.sh |
| Nginx | wget http://www.klquan.com/scripts/offline/nginx_offline.sh |
wget http://www.klquan.com/scripts/package/nginx-1.23.3.tar.gz |
sh nginx_offline.sh |
| JDK | wget http://www.klquan.com/scripts/offline/jdk_offline.sh |
wget http://www.klquan.com/scripts/package/jdk-8u211-linux-x64.tar.gz |
sh jdk_offline.sh |
| Tomcat | wget http://www.klquan.com/scripts/offline/tomcatyfk_offline.sh |
wget http://www.klquan.com/scripts/package/tomcat_yfk.tar.gz |
sh tomcatyfk_offline.sh |
3. 脚本运维规范
所有脚本都基于公共函数库 common.sh 开发,包含以下核心功能:
-
get_packages
获取软件安装包列表,从服务器检索可用版本并显示给用户选择。
-
select_version
选择要安装的软件版本,支持命令行参数指定或自动选择最新版本。
-
show_usage
显示使用说明,指导用户如何指定版本进行安装。
-
check
检查命令执行结果,成功显示绿色提示,失败显示红色并退出。
-
countdown
显示倒计时确认界面,给用户10秒时间确认或取消安装。
每个新脚本都应包含以下基本结构:
脚本开发规范:
- server变量:必须与
packages/目录中的文件名匹配(使用grep过滤) - 使用统一的格式:
【步骤序号】描述 - 依赖处理:在脚本中安装必要的依赖包
- 配置管理:提供合理的默认配置
- 服务管理:优先使用systemd管理服务
- 错误处理:每个步骤后都要使用check函数检查执行结果
- 日志记录:重要操作需要记录日志以便排查问题