新项目部署过程

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创建存储策略

image

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>;

image
右键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运行容器

posted @ 2025-04-25 14:33  Shine、  阅读(2)  评论(0)    收藏  举报