【CI/CD 】自动化发布spring boot 项目

[原创] 持续集成持续发布spring boot 项目

个人博客

自动化流程图

CICD.png

系统环境

IP地址服务器名项目配置
192.168.2.16Repositorygitlab+jenkins4核10G
192.168.2.22Server01java1核2G
192.168.2.22mysql-redismysql+redis1核1G

关闭防火墙与selinux

[root@Repository ~]# systemctl stop firewalld
[root@Repository ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@Repository ~]# sed -i '7s/enforcing/disabled/p' /etc/selinux/config 

安装gitlab

添加gitlab 仓库

[root@Repository ~]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1

安装gitlab

[root@Repository ~]# yum -y install gitlab-ce

更改配置文件

[root@Repository ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.2.16'

#配置完成gitlab会自动启动
[root@Repository ~]# gitlab-ctl reconfigure  

#查看gitlab密码
[root@Repository ~]# cat /etc/gitlab/initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: 7TnxW/ZWgLC91HFaBQc9uYu3cSQQUru0RxFIzyAQxSk=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

输入浏览器登陆

gitlablogin.png

将Gitlab语言设置为中文

gitlab01.png

gitlab02.jpg

克隆项目代码上传至gitlab

gitlab创建项目

gitlab03.png

gitlab04.png

gitlab05.png

gitlab06.png

克隆代码仓库到本地

#安装git命令
[root@Repository ~]# yum -y install git
#克隆代码仓库到本地
[root@Repository ~]# git clone https://gitee.com/qianxuwang/tdedu-vue.git
正克隆到 'tdedu-vue'...
remote: Enumerating objects: 877, done.
remote: Counting objects: 100% (877/877), done.
remote: Compressing objects: 100% (681/681), done.
remote: Total 877 (delta 119), reused 828 (delta 94), pack-reused 0
接收对象中: 100% (877/877), 861.49 KiB | 0 bytes/s, done.
处理 delta 中: 100% (119/119), done.
#项目拉取下来名字是tdedu-vue
[root@Repository ~]# ls
anaconda-ks.cfg  tdedu-vue
[root@Repository ~]# cd tdedu-vue/
[root@Repository tdedu-vue]# ls
LICENSE  README.md  ry.sh  tdedu-admin   tdedu-framework  tdedu-quartz  tdedu-ui
pom.xml  ry.bat     sql    tdedu-common  tdedu-generator  tdedu-system

将克隆的代码上传到gitlab

#编辑项目配置文件
[root@Repository ~]# vim ./tdedt-vue/.git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
	#将下方地址改为gitlab仓库地址,创建项目的最后一张图里有
        url = http://192.168.2.16/root/test.git 
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
~                                     
#保存退出 之后选装推送代码至项目的master分支
[root@Repository tdedu-vue]# git push origin master
#输入gitlab用户名
Username for 'http://192.168.2.16': root
#输入gitlabroot密码
Password for 'http://root@192.168.2.16': 
Counting objects: 877, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (656/656), done.
Writing objects: 100% (877/877), 861.49 KiB | 0 bytes/s, done.
Total 877 (delta 119), reused 877 (delta 119)
remote: Resolving deltas: 100% (119/119), done.
To http://192.168.2.16/root/test.git
 * [new branch]      master -> master

验证是否推送成功

gitlab07.png

安装Jenkins

下载jenkins安装包

下载jenkins及安装依赖

[root@Repository ~]# yum -y install java-11-openjdk 
[root@Repository ~]# wget https://get.jenkins.io/redhat/jenkins-2.450-1.1.noarch.rpm
[root@Repository ~]# yum -y install ./jenkins-2.450-1.1.noarch.rpm

配置nginx

因为8080端口被Gitlab占用需要修改jenkins端口

[root@Repository ~]# vim /usr/lib/systemd/system/jenkins.service 
#修改后的用户与组,因为等下需要发送给远端服务器文件,需要使用root身份
User=root
Group=root
#修改后的端口
Environment="JENKINS_PORT=8081"
[root@Repository ~]# systemctl daemon-reload
[root@Repository ~]# systemctl start jenkins

验证jenkins

jenkins01.png

#查看Jenkins登陆密码
[root@Repository ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
3c9c1f9056ec452bb3e7fa8db8f91b6a

Jenkins02.png

jenkins03.png

jenkins04.png

jenkins05.png

jenkins06.png

jenkins07.png

配置jenkins

jenkins08.png
安装插件
jenkins09.png
jenkins10.png
需要要装的插件有
Publish Over SSH:添加ssh服务器
Maven Integration:java源码打包工具
NodeJS:VUE源码打包工具
SCP publisher:scp命令
GitLab:允许GitLab触发Jenkins构建
jenkins11.png

jenkins12.png

配置工具

jenkins13.png

jenkins14.png

jenkins15.png

jenkins16.png

创建任务

jenkins17.png

jenkins18.png
jenkins19.png
jenkins20.png
jenkins21.png
jenkins22.png
jenkins23.png
jenkins31.png
gitlab01.png
gitlab02.png
gitlab03.png
gitlab04.png
gitlab05.png

配置项目服务器

jenkins33.png
jenkins34.png
jenkins35.png
jenkins36.png
jenkins37.png
jenkins43.png
jenkins39.png
jenkins40.png

测试

jenkins41.png
jenkins42.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值