jenkins(docker) + gitlab 实现自动化部署
jenkins + gitlab 自动化发布
·
一、背景:
原来的测试环境 jenkins 机器内存不足, 导致前端打包时内存溢出, 不能成功
二、材料:
2台服务器 ( 1台应用服务器 nginx, 1台工具 jenkins + git )
- 理论上也可以一台机器或者在原有的jenkins 下增加节点来解决, 此处为了梳理一下完整流程就重新搭建了
三、安装jenkins:
- docker 安装并启动 jenkins , 关于环境问题可参考其他帖子
1.1 这里我将端口映射到了本机的 30001 端口
1.2 将工作目录映射到了本机的 /data/jenkins_home
1.3 后台运行
1.4 使用 docker ps 查看启动情况
// 获取jenkins镜像
docker pull jenkins/jenkins
// 启动
docker run -dp 30001:8080 -p 50000:50000 --name jenkins -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins
- 使用命令进入docker 查看秘钥, 第一次进入会使用到 (因为上面是后台运行的, 所以看不到安装时给的秘钥串)
// 查看镜像
docker ps
// 进入镜像
docker exec -it 22949f27b97d /bin/bash
// 查看初始化秘钥
cat /var/jenkins_home/secrets/initialAdminPassword
- 访问机器的 30001 端口, 或自己代理出去的域名
3.1 输入上一步拿到的 秘钥 ,根据提示输入
3.2 安装推荐的插件或根据自己需要安装插件, 如果遇到安装不了, 提示重试的话, 大多是网络问题,可以手动配置 宿主机 /data/jenkins_home/hudson.model.UpdateCenter.xml 中的地址, 可以改成 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json (国内的一个地址, 修改之后 执行 docker restart jenkins 重启服务)
- 根据提示设置管理员账号或直接使用admin(要记得去设置一下admin的密码)
- 进入 系统管理- 插件管理 , 搜索安装 插件, 装完执行 docker restart jenkins 重启一下 jenkins
插件名称 | 用途 |
---|---|
Publish Over SSH | 访问远程主机, 可以用来将打包后的文件拷贝到nginx 机器 |
Git plugin | 访问git |
Qy Wechat Notification Plugin | 通过webhook向企业微信推送通知 |
SSH Agent Plugin |
四、配置与nginx 机器的链接
- cat ~/.ssh/id_rsa 获取私钥
- 进入 jenkins 系统管理-系统配置 ,将私钥 粘贴到 Publish over SSH 的 Key 栏 (如果没有这个选项, 则可能是插件没有安装成功)
- 点击新增server 填写相应信息后 测试连接是否正常, 正常会返回 Success
五、配置 gitlab 账号
- 进入后台系统管理-凭据, 继续点击条目-添加凭据
六、配置任务
- 新建任务
- 填写项目地址
- 选择凭据
- 设置分支
- 构建触发器 勾选 Build when a change is pushed to GitLab. 后面有个url 记下来, 要用
- 点击 Generate 创建一个 token , 这个token 记下来, 要用
- 进入gitlab 项目下, 点击 设置 - 导入所有仓库 , 其中 url 和 令牌 两个为 上面第 5,6 步骤产生的, 勾选对应的触发器
- 构建配置, 根据自己的项目增加构建选项及构建后操作
9. 增加一个构建后步骤, 发送通知到企业微信
七、最终效果, gitlab推送代码即触发自动打包发布
更多推荐
已为社区贡献4条内容
所有评论(0)