[原创] 持续集成持续发布spring boot 项目
自动化流程图
系统环境
IP地址 | 服务器名 | 项目 | 配置 |
---|---|---|---|
192.168.2.16 | Repository | gitlab+jenkins | 4核10G |
192.168.2.22 | Server01 | java | 1核2G |
192.168.2.22 | mysql-redis | mysql+redis | 1核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.
输入浏览器登陆
将Gitlab语言设置为中文
克隆项目代码上传至gitlab
gitlab创建项目
克隆代码仓库到本地
#安装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
验证是否推送成功
安装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
#查看Jenkins登陆密码
[root@Repository ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
3c9c1f9056ec452bb3e7fa8db8f91b6a
配置jenkins
安装插件
需要要装的插件有
Publish Over SSH
:添加ssh服务器
Maven Integration
:java源码打包工具
NodeJS
:VUE源码打包工具
SCP publisher
:scp命令
GitLab
:允许GitLab触发Jenkins构建
配置工具
创建任务
配置项目服务器
测试