使用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

## 安装git

yum 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.128
  jar_name: demo-0.0.1-SNAPSHOT.jar
  java_path: /usr/local/java/jdk1.8.0_371/bin
  upload_path: /home/demo

# 定义执行的各个阶段及顺序
stages:
  - build
  - upload
  - deploy

# 使用 maven 镜像打包项目
maven-build:
  stage: build
  image: maven:3.5.0-jdk-8
  script:
    - mvn package -B -Dmaven.test.skip=true
  cache:
    key: m2-repo
    paths:
      - .m2/repository
  artifacts:
    paths: 
      - target/$jar_name

# 上传生成的 jar 包到你的应用服务器,这里使用 ictu/sshpass 这个镜像,是为了使用 sshpass 命令
upload-jar:
  stage: upload
  image: ictu/sshpass
  script: 
    - 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: deploy
  image: ictu/sshpass
  script:
    - 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" ]
then
   kill -9 $pid
fi
echo "停止demo服务成功"

source /etc/profile

nohup 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项目

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用GitLabCI/CD功能,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了GitLab Runner。你可以使用以下命令来安装GitLab Runner: ``` curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash sudo yum install gitlab-runner ``` 如果你在Ubuntu系统上使用,请使用`apt-get`命令来安装。 2. 安装完成后,你可以使用`gitlab-runner -v`命令来验证安装是否成功,并查看GitLab Runner的版本号。 3. 接下来,你需要将GitLab Runner注册到GitLab CI/CD Coordinator上。在终端中输入以下命令: ``` gitlab-runner register ``` 在提示中,你需要提供GitLab CI/CD Coordinator的URL(例如https://gitlab.com/),以及访问权限验证的Token。 4. 注册成功后,你可以配置`.gitlab-ci.yml`文件来定义CI/CD的流程。这个文件包含了一系列的任务(jobs)和阶段(stages),你可以根据自己的项目需求进行配置。具体的语法和配置参考可以在GitLab官方文档中找到。 5. 当你的代码提交到GitLab仓库时,GitLab CI/CD会自动触发流水线(pipeline)的执行。流水线中的任务会按照`.gitlab-ci.yml`文件中定义的顺序和规则进行执行。 总结:要使用GitLabCI/CD功能,你需要先安装GitLab Runner,并将其注册到GitLab CI/CD Coordinator上。然后,在项目中配置`.gitlab-ci.yml`文件来定义CI/CD流程。最后,当代码提交到GitLab仓库时,GitLab CI/CD会自动执行流水线中的任务。详细的使用方法和配置参考可以查阅GitLab官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dotclv

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

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

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

打赏作者

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

抵扣说明:

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

余额充值