新项目部署过程
1. 创建分区,格式化,修改/etc/fstab文件实现永久挂载
#磁盘分区
fdisk /dev/vdb
#格式化磁盘
mkfs.ext4 /dev/vdb1
#数据盘挂载
mount /dev/vdb1 /opt
#数据盘永久挂载,避免重启后失效
[root@ecs02 ~]#vim /etc/fstab
/dev/vdb1 /opt ext4 defaults 0 2
[root@ecs02 ~]#mount -a
2.安装系统常用工具
yum install -y vim wget unzip
3.安装docker mysql mongodb mosquitto(MQTT)
#docker版本:20.10.20
安装脚本:install_docker.sh
#mysql版本:5.7.44
安装mysql脚本: install_mysql.sh
#mongodb版本:4.2.8
安装脚本:install_mongodb.sh,二进制包安装,执行脚本前需上传包文件
#mqtt版本:1.6.10
安装脚本:install_mqtt.sh
如果文件不存在,使用 -c 创建新文件.如果文件已存在(已有其他用户),去掉 -c 追加用户
mosquitto_passwd -c /etc/mosquitto/pwfile.example admin
设置文件权限
chown mosquitto:mosquitto /etc/mosquitto/pwfile.example
chmod 600 /etc/mosquitto/pwfile.example
重启Mosquitto服务
systemctl restart mosquitto
测试连接(使用指定端口11883)
mosquitto_sub -t "test" -p 11883 -u "admin" -P "mqtt2023."
如果命令挂起等待消息,说明认证成功,按Ctrl+C退出测试
4.安装minio
#minio版本: minio version RELEASE.2024-08-17T01-24-54Z
#安装方法如下:
拷贝minio执行程序到数据盘挂载目录下,一般为/opt,从其他项目服务器打包/opt/minio-data目录为minio.tar.gz ,将打包压缩文件拷贝到/opt目录下解压
设置环境变量如下,定义客户端访问minio的凭证,默认账号和密码均为minioadmin,自定义密码配置如下,需在启动minio前定义变量才生效
export MINIO_ACCESS_KEY=minioadmin #账号
export MINIO_SECRET_KEY=Zyyt2023.qwerdf #密码
使用nohup启动minio,--console-address指定端口,防火墙放开9000和指定端口,输出追加到nohup.out文件中,启动后浏览器http访问端口地址,测试用户名和密码登录是否正常
nohup /opt/minio server /opt/minio-data/ --console-address :9999 &
测试启动成功后,将上述命令写入/etc/rc.local启动脚本中实现开机自启
5.mysql和mongodb数据库配置
#MySQL
#创建用户并授权
create user root@'%' identified by 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
#创建athena_plat数据库
create database athena_plat;
拷贝其他项目/opt/mysqldbbackups/目录下的数据库备份文件中,解压缩,将athena_plat-date.sql文件导入athena_plat数据库
#MondoDB
除了脚本本身创建的root账号外,需要创建一个push服务专用的账号所使用的验证库和数据库一致,如下,此时创建的账号为meichen验证库为athena_plat_meichen。
use athena_plat_meichen
db.createUser ( {user: "meichen",pwd: "密码",roles: [{role: "root", db: "admin"}]})
6. Docker安装portainer
#从其他服务器导出portainer镜像,使用docker load导入服务器,启动portainer
docker run --name portainer --restart=always -d -p 19990:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /opt/docker_deploy/portainer/data:/data portainer/portainer
7.portainer部署中间件和应用
从其他服务器导出镜像,将镜像导入,访问portainer,在portainer上创建stacks并运行,启动中间件和应用容器。按照stacks volumes配置创建目录和文件,做好映射,并确保映射目录权限问题。部署reids时设置 --requirepass验证密码,在后续需要连接redis的应用中均修改为redis所设置的密码。服务需要连接MYSQL或者mongodb以及influxdb、mqtt的,按照项目部署的密码设置。服务的内网IP替换为项目服务器内网ip,外网ip替换为项目服务器外网IP
push core job几个服务的kafka 要配置成相同的,报警才能贯通
8. influxdb创建存储策略

influxdb使用portainer启动,默认docker compose配置中INFLUXDB_ADMIN_PASSWORD初始配置密码生效后会写入容器内/var/lib/influxdb目录下,后续只修改compose配置中INFLUXDB_ADMIN_PASSWORD更新不会生效,因为初始密码保存在/var/lib/influxdb中,更新密码需要手动删除/var/lib/influxdb中的内容才能实现。
连接influxdb后右键创建数据库athena_plat
#在数据库 athena_plat 中创建保留策略,设置对应的保留天数,设置2week为默认策略
CREATE RETENTION POLICY "2_week" ON "athena_plat" DURATION 14d REPLICATION 1 DEFAULT
CREATE RETENTION POLICY "4_week" ON "athena_plat" DURATION 30d REPLICATION 1
CREATE RETENTION POLICY "2_year" ON "athena_plat" DURATION 730d REPLICATION 1
#查看influxdb保留策略
SHOW RETENTION POLICIES ON <database_name>;

右键New Query输入上面的命令执行即可
9. 配置防火墙规则
云服务器在安全组规则维护,没有云服务器管理权限的情况下,在客户服务器通过firewalld放行相关端口,客户服务器放行端口可参照天虹,仅放行服务器上部署的应用、数据库、中间件等端口,其中18001-18030(应用)端口、minio服务端口9000 web控制台端口(随机或指定)、11883(MQTT)端口完全放行,数据库、中间件等端口仅放行公司IP、服务器公网和内网IP等白名单地址
10.jenkins配置
系统管理添加SSH Server信息
新建任务,从其他项目复制,修改任务名、描述信息,构建后操作执行命令创建对应文件夹,将对应前后端目录的Dockerfile和nginx.conf文件上传到对应目录中,可通过athenaplat.tar.gz文件解压缩生成目录和文件,根据项目实际目录修改Dockerfile文件为对应目录
配置无误后,执行任务构建,查看控制台输出成功即可。登录portainer查看images是否生成新镜像。
搭好jenkins环境后方便后续发版
生成新镜像后,登录portainer修改镜像名称,创建stacks运行容器

浙公网安备 33010602011771号