Gitlab CI/CD实现的集群自动部署方案
关键词:
- gitlab cicd
- 流水线
- 目标机器 ip 组
- ssh 免密登陆并远程执行命令
- 需要提前安装搭建好 gitlab 和 runner, 实践过gitlab cicd
自动部署的执行流程
gitlab-ci.yml
文件触发流水线,包含test,build,deploy三个阶段- test 执行单元测试
- build 打包上传到云存储
- deploy 从云存储下载最新包,执行部署
方案流程图如下:
gitlab-ci.yml流水线配置案例
stages:
- test
- build
- deploy
test:
stage: test
tags:
- [runner 机器的tag]
script:
- mvn test
- [jar包上传至云存储]
only:
- master
build:
stage: build
tags:
- [runner 机器的tag]
script:
- mvn clean package -Dmaven.test.skip=true
only:
- master
deploy:
stage: deploy
tags:
- [runner 机器的tag]
script:
- sh remote-deploy.sh
only:
- master
remote-deploy.sh 远程部署集群脚本示例
#!/bin/bash
successCount=0
errorCount=0
# 这里可以是通过云厂商的接口获取到目标机器的ip组
ips=("123.456.789" "123.456.789" "123.456.789")
for((i=0; i