使用gitlab 自带 CI/CD 构建部署项目

首先是处理网络问题

这里我用的是桥接模式
桥接模式方便局域网内的小伙伴一起使用 如果没有这个打算可跳过这步

# 使用ip addr 查看网络
ip addr

在这里插入图片描述

编辑网络 vi /etc/sysconfig/network-scripts/ifcfg-你的网络名称

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改如下内容

BOOTPROTO=static #修改成static
ONBOOT=yes #修改成yes
IPADDR=192.168.0.200 # 自定义虚拟机的ip地址(主机是192.168.0.107),必须与主机在同一网段
NETMASK=255.255.255.0 #设置子网掩码,跟宿主一样
GATEWAY=192.168.0.1 #默认网关,跟宿主一样
DNS1=192.168.0.1 #DNS,跟宿主一样

这里我有句话要讲, 这些信息配置完成后出现"网络不可达" 需要把 BOOTPROTO 改为 dhcp

详情可参考 处理网络不可达
用过的人都说好 …
如有其他具体设置可参考Centos 7 VM 桥接网络完整设置

安装git

git一定一定要自己装 用gitlab自带的是 1.8.3.1 这个版本在初次构建的时候是没有问题的 二次构建会出现问题

## 安装源
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm## 安装gityum install git## 更新git 如果是安装过的就跟新不是就不更新yum update git

安装gitlab

版本:gitlab 14.3.0

yum -y install https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.3.0-ce.0.el7.x86_64.rpm

修改配置文件

vi /etc/gitlab/gitlab.rb

找到,external_url, 修改 gitlab 访问地址 , 端口设置一个自己喜欢的

external_url 'http://192.168.0.128:1998'#重载配置文件,需要的时间比较长
gitlab-ctl reconfigure

gitlab 常用命令

# 启动gitlab服务
gitlab-ctl start# gitlab服务停止
gitlab-ctl stop# 重启gitlab服务
gitlab-ctl restart

访问 页面后没有提示修改密码 需设置密码
在这里插入图片描述

# 进入gitlab控制台
gitlab-rails console -e production
# 找到指定 root 账户
user = User.where(id: 1).first
# 修改密码
user.password = 'secret_pass'
# 确认密码
user.password_confirmation = 'secret_pass'
# 保存
user.save! 
# 退出
exit

进入控制台的时候会卡一下
在这里插入图片描述

然后 用户账号root 登录 密码就是上面设置的密码 详情可参考 gitlab登陆网页没有提示更改密码

在这里插入图片描述

安装 gitlab-runner

# 下载 这个会比较久
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# 分配运行权限
chmod +x /usr/local/bin/gitlab-runner# 创建用户
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# 安装
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner# 运行
gitlab-runner start

新建 runner

# 注册 runner
gitlab-runner register# 输入 gitlab 的访问地址
http://192.168.0.128:1998# 输入 runner token,把开 http://192.168.0.128:1998/admin/runners 页面查看
TLSaJ3rPKzW8rt9UXhfk# runner 描述,随便填
构建 java Demo# runner tag
java-tag,my-tag,demo-tag# 说明这个可以不填
xxx# 输入(选择) shell
shell

在这里插入图片描述
在这里插入图片描述

新建变量 后面会用到

在这里插入图片描述
在这里插入图片描述
先在应用服务器上创建一个目录,用于上传存放项目 jar 包

	mkdir /home/demo

配置环境

安装 JDK1.8
安装 Maven
安装 sshpass 用户文件传输

    yum -y  install sshpass

创建 SpringBoot 项目

在这里插入图片描述在这里插入图片描述

这里修改一下端口 8080 在gitlab 中控制台服务Ruby 占用了

	server.port=9999 

项目启用 runner

在这里插入图片描述

这样就可以不用在配置文件里面写tag

在这里插入图片描述

创建 .gitlab-ci.yml 文件

这里直接用gitlab创建就可以了
在这里插入图片描述

编辑配置文件

在配置文件顶部添加如下参数
在这里插入图片描述

variables:server_ip: 192.168.0.128jar_name: demo-0.0.1-SNAPSHOT.jarjava_path: /usr/local/java/jdk1.8.0_371/binupload_path: /home/demo# 定义执行的各个阶段及顺序
stages:- build- upload- deploy# 使用 maven 镜像打包项目
maven-build:stage: buildimage: maven:3.5.0-jdk-8script:- mvn package -B -Dmaven.test.skip=truecache:key: m2-repopaths:- .m2/repositoryartifacts:paths: - target/$jar_name# 上传生成的 jar 包到你的应用服务器,这里使用 ictu/sshpass 这个镜像,是为了使用 sshpass 命令
upload-jar:stage: uploadimage: ictu/sshpassscript: - ls -l target/- sshpass -p $ssh_password scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no target/$jar_name root@$server_ip:$upload_path/$jar_name# 启动 SpringBoot jar包
deploy-test:stage: deployimage: ictu/sshpassscript:- sshpass -p $ssh_password ssh -o StrictHostKeyChecking=no root@$server_ip "nohup $java_path/java -jar $upload_path/$jar_name >/dev/null 2>&1 &"

这里启动的时候是去掉了 UserKnownHostsFile=/dev/null

这里的启动命令可用替换成脚本系统命令 sudo bash 这样就可以循环启用不用管端口占用问题

#!/bin/sh
echo "停止demo服务"
pid=`ps -ef | grep "你的jar包名字" | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
thenkill -9 $pid
fi
echo "停止demo服务成功"source /etc/profilenohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=1024m -jar /home/demo/demo.jar >/home/demo/demo.log 2>&1 &tail -f /home/demo/demo.log

提交后可到流水线查看打包过程
在这里插入图片描述
在这里插入图片描述

具体参考文档

前端 Linux 到 GitLab 自动化部署(非常详细)
后端Gitlab CI-CD自动化部署SpringBoot项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5882.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度:全面解析数据智能的金融“炼金术”!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 金融以其财富效应,成为最新科技的试金石。一项新技术出来后,人们首先闪过的念头就是“能不能用它赚钱”。例如,ChatGPT带火了大模型,人们也开始将目标聚焦到大模型在金融领域的…

【网络原理】TCP协议如何实现可靠传输(确认应答机制)

🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。 🤼专栏收录于:计算机网络原理 本篇主要讲解:TCP协议段格式,TCP的序列号,SYN、ACK标志位&a…

【2023unity游戏制作-mango的冒险】-7.玩法实现

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

论文与专利查找和下载

例如我想查找和下载视频理解(video understanding)相关论文 路线大纲如下: 一、最主要方式: 大纲,蓝色都是有超级链接的可以直接打开: 第一步 谷歌搜索(英文) 学校的知网(中文)第二步 下载论文(谷歌学术--英文 学校的知网--中文)下载不了…

对话人工智能 |新时代AI如何“落地“

前言: Comate代码助手推出,现场生成了贪吃蛇游戏,我们距离AI自动编程还有多远? 文章目录 序章正文背景基础坚实文心大模型飞浆深度学习框架 Comate的出现优质的智能助理和伙伴多场景适用优势特征Demo演示视频: 总结 序…

Anacoda3中成功配置Tesseract-OCR超详细教程!!(win7、win10)

Anacoda3中成功配置Tesseract-OCR Tesseract-OCR简介安装及配置环境步骤1、在Anaconda虚拟环境中安装pytesseract第三方库2、下载tesseract-ocr安装包并安装3、环境配置检验是否安装成功修改pytesseract.py文件(很重要!) Tesseract-OCR简介 …

H5学习(二)-- 常用标签

标签内容 一、标题标签二、表单标签啊三、段落标签四、插入图片标签五、换行标签六、列表标签七、超链接标签八、容器标签九、结构性标签十、级块性标签十一、行内语义性标签 HTML中的常用的标签 一、标题标签 <body><!--标题标签--><h1>h1标签</h1>&…

使用matplotlib制作动态图

使用matplotlib制作动态图 一、简介二、模块简介1. **FuncAnimation**类介绍2. 定义动画更新函数 三、使用matplotlib制作动画1.一步法制作动态图片2. 两步法制作动态图片 一、简介 matplotlib(https://matplotlib.org/)是一个著名的python绘图库&#xff0c;由于其灵活强大的…

NOSQL——redis的安装,配置与简单操作

目录 一、缓存的相关知识 1&#xff09;缓存的概念 2&#xff09;系统缓存 buffer与cache&#xff1a; 3&#xff09;缓存保存位置及分层结构 DNS缓存 应用层缓存 数据层缓存 分布式缓存服务&#xff1a; 数据库&#xff1a; 硬件缓存 二、关系型数据与非关系型数据…

day1-若依项目前后端分离的初步使用

响应式布局: 做好的产品能在pc端,手机,平板都能正常浏览 开发项目两种方式 1.自己从0开始写代码 2.在若依中下载拥有基础功能的源码 若依使用的mysql版本 mysql5.7 导入别人的项目如何操作 若依项目下载地址**:https://gitee.com/y_project/RuoYi-Vue.git** 可以使用揉…

【elementplus】body设置zoom后,el-table开启show-overflow-tooltip后,表格的tooltip显示会错位的解决方案

由于我的项目是无法避免使用zoom&#xff0c;所以只记录zoom后的解决方案 示例&#xff1a;明明划过的是第一行&#xff0c;tooltip却显示到了第四行的位置&#xff1b; 正确显示&#xff1a;划过第一行&#xff0c;tooltip显示在第一行的位置 代码&#xff1a;使用transfor…

Linux--用户身份切换: su

①普通用户切换成超级用户且更改路径&#xff1a;su - ②普通用户切换成超级用户且不更改路径&#xff1a;su root 或者 su ③(由普通用户切换来的)超级用户切换回普通用户&#xff1a;Ctrld ④超级用户切换成普通用户&#xff1a;su 普通用户名 ⑤普通用户a切换成普通用户b…