创建Jenkins
Jenkins官网 https://www.jenkins.io/zh/doc/book/installing/
主机ip:192.168.122.30 端口:8080
在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;或者前后端分离后,经常会修改接口,然后重新部署;这些情况都会涉及到频繁的打包部署;
手动打包常规步骤:
1.提交代码
2.问一下同组小伙伴有没有要提交的代码
3.拉取代码并打包(war包,或者jar包)
4.上传到Linux服务器
5.查看当前程序是否在运行
6.关闭当前程序
7.启动新的jar包
8.观察日志看是否启动成功
9.如果有同事说,自己还有代码没有提交......再次重复1到8的步骤!!!!!(一上午没了)
那么,有一种工具能够实现,将代码提交到git后就自动打包部署勒,答案是肯定的:Jenkins当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson等只是Jenkins相对来说,使用得更广泛。
一、docker安装Jenkins
1.linux服务器
mkdir /var/jenkins_home
docker run -u root --rm -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
docker ps -a
netstat -tlnup|grep 8080
http://192.168.122.30:8080/
2.web
[root@master ~]# docker exec -it 0cc05426358c sh
/ # cat /var/jenkins_home/secrets/initialAdminPassword
进入容器取管理员密码
点击 安装推进的插件
等待安装
开始创建用户
记录jenkins URL
http://192.168.122.30:8080/
二、流水线
1.gitlab连接jenkins
创建gitlab详见
https://blog.csdn.net/weixin_55609905/article/details/119979282
1.jenkins服务器创建密钥
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
2.添加gitlab密钥
将jenkins服务器密钥复制到gitlab上
3.创建gitlab访问令牌
访问令牌 创建 个人访问令牌
4.安装jenkins插件
进入“插件管理”,安装插件:GitLab、Generic Webhook Trigger、Git Parameter、Publish Over SSH,安装完插件重启系统
5.配置 GitLab 凭据
系统管理 --》 系统配置
找到gitlab --》 Credentials --》 添加
添加 GitLab API token
验证
点击 Test Connection
出现Success说明验证通过
gitlab服务列表
添加名称–》服务地址URL–》添加凭据
选择gitlab个人令牌
点击测试连接
结果显示 Credentials verified for user root 成功
找到 Publish over SSH
添加服务器的账号和密码
点击测试
结果显示 Success 成功
2.创建流水线
1.新增凭证配置 Username with password
系统管理–》凭据配置
新增凭证配置类型为Username with password
2.创建任务
选择创建 构建一个自由风格的软件项目
添加Credentals
类型选择Username with password
填入gitlab 账号 密码
3.构建触发器
选择
Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.122.30:8080/project/myweb
记录地址
http://192.168.122.30:8080/project/myweb
点击高级
点击Generate
生成 Secret token
877eefe539ec1367338767fb65d24db9
4.构建
选择 Send files or execute command over SSH
选择对应服务器地址
填写 Sourec files /
填写 Exec command
5.配置gitlab
1.修复gitlab报错
出现报错
Urlis blocked: Requests to the local network are not allowed
管理区域–》设置–》外发请求–》展开–》勾选允许钩子和服务访问本地网络–》保存修改
添加之前的jenkins URL地址 和生成 Secret token 密码
取消 勾选ssl证书验证
点击 添加web钩子
2.测试 Webhook 配置
Test--》Push events
Hook executed successfully: HTTP 200
成功
6.推送文件到gitlab(192.168.122.30)
git commit -m "init"
git status
git config --global user.name "lp"
git config --global user.email "1078802338@qq.com"
git config --global core.editor vim
git remote add origin git@192.168.122.50:root/myweb.git
git remote show origin
git branch jenkins
git checkout jenkins
echo '<h3>new line</h3>' >> index.html
git add .
git commit -m "init"
git push origin jenkins
构建jenkins
测试成功
Started by GitLab push by 咕咕