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

这篇具有很好参考价值的文章主要介绍了使用gitlab 自带 CI/CD 构建部署项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先是处理网络问题

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

# 使用ip addr 查看网络
ip addr

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

编辑网络 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 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

# 进入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

进入控制台的时候会卡一下
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

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

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

安装 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

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

新建变量 后面会用到

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd
先在应用服务器上创建一个目录,用于上传存放项目 jar 包

	mkdir /home/demo

配置环境

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

    yum -y  install sshpass

创建 SpringBoot 项目

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

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

	server.port=9999 

项目启用 runner

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

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

使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

创建 .gitlab-ci.yml 文件

这里直接用gitlab创建就可以了
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

编辑配置文件

在配置文件顶部添加如下参数
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

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

提交后可到流水线查看打包过程
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd
使用gitlab 自带 CI/CD 构建部署项目,服务器配置,第三方配置,配置,gitlab,ci/cd

具体参考文档

前端 Linux 到 GitLab 自动化部署(非常详细)
后端Gitlab CI-CD自动化部署SpringBoot项目文章来源地址https://www.toymoban.com/news/detail-517161.html

到了这里,关于使用gitlab 自带 CI/CD 构建部署项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在服务器部署Next.js、Node.js项目,并实现自动部署(伪CI\CD)超详细

    目录 一、引言 二、配置服务器 1. 远程连接服务器 · 用服务商提供的远程连接 · 用MotaXterm来远程连接 ​编辑​编辑​编辑  2. 登录实例 · 如何获取账号和密码 · 服务商远程连接方式:  · MotaXterm连接方式 三、项目准备与测试 1. 安装nodejs · 进入安装目录 · 下载 · 解压 ·

    2024年02月05日
    浏览(96)
  • Gitlab CI/CD入门(一)Python项目的CI演示

      本文将介绍CI/CD的基本概念,以及如何使用Gitlab来实现CI/CD。   本文介绍的CI/CD项目为个人Gitlab项目:gitlab_ci_test,访问网址为:https://gitlab.com/jclian91/gitlab_ci_test。 CI/CD的含义   在现代软件工程中,CI即 持续集成(Continuous integration) ,CD有两重含义,即 持续交付(Co

    2024年02月10日
    浏览(78)
  • Gitlab CI/CD笔记-第二天-主机套接字进行构建并push镜像。

    一、安装gitlab-runner         1.安装查看我另外一篇文章很详细。                 Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。_A ?Charis的博客-CSDN博客         2. 这篇文章的目的是使docker来构建镜像!         3.让docker使用你的主机的docker.sock构建

    2024年02月12日
    浏览(40)
  • GitLab Runner 实现项目 CI/CD 发布

    Gitlab实现CICD的方式有很多,比如通过Jenkins,通过Gitlab Runner等,今天主要介绍后者。Gitlab在安装的时候,就默认包含了Gitlab CI的能力,但是该能力只是用于协调作业,并不能真的去执行作业,因此需要搭配Gitlab Runner来作为执行器实现具体的CICD工作。Gitlab Runner可以被安装在任

    2024年01月17日
    浏览(63)
  • docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)

          GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。       GitLab是由GitLabInc.开发,使用MIT许可证的基于

    2024年02月03日
    浏览(47)
  • CI/CD:GitLab-CI 自动化集成/部署 JAVA微服务的应用合集

    日常开发中,每次代码编写完成后,都需要手动打包,并且上传服务器,无论本地打包的时间或者上传文件到服务器都需要花费大量的时间来完成,都是重复的并且毫无意义,应该将时间花费在更有价值的时间上;所以编写这篇文章,将自己收集、搭建、测试的步骤或经验汇

    2024年02月08日
    浏览(51)
  • CI/CD---使用新版云效流水线自动部署Java项目

    两大基本前提: 1、有一个自己的云服务器 2、项目代码已经提交到代码仓库,如gitee,github等 为什么需要流水线 1、除了第一次需要新建流水线,配置脚本外,后续所有的部署只需要提交代码后,点击运行流水线就行 。 2、流水线还可以回滚,此功能太过友好了。 3、当然,

    2024年02月06日
    浏览(65)
  • 【持续集成CI/持续部署CD】六、Docker Compose构建CI全流程

    1. 创建宿主机挂载目录并赋权 2. 新建 Jenkins+Sonar 安装脚本 jenkins-compose.yml 脚本,这里的 Jenkins 使用的是 Docker 官方推荐的镜像 jenkinsci/blueocean,在实际使用中发现,即使不修改插件下载地址,也可以下载插件,所以比较推荐这个镜像。 3. 在 jenkins-compose.yml 文件所在目录下执行

    2024年02月10日
    浏览(55)
  • CI/CD 管道安全:构建和部署之外的最佳实践

    鉴于对快速创新和敏捷方法论采用的需求,持续集成/持续部署 (CI/CD) 管道已成为构建所有 DevOps 流程的基础。他们是高效交付的支柱。  事实上,根据持续交付状态报告,使用 CI/CD 工具与所有指标上更好的软件交付性能相关。 这些管道给组织带来了难以置信的安全风险,后

    2024年02月19日
    浏览(38)
  • [Docker实现测试部署CI/CD----构建成功后钉钉告警(7)]

    首先需要在钉钉中创建一个项目群。 复制Webhook,后面在 Jenkins 配置时需要使用。         在Jennkins中下载 build user vars plugin ,获取项目中的相关变量值 在 Jenkins 中下载 DingTalk 插件。 在 Jenkins 的系统管理中可找到“钉钉”,这是安装过 DingTalk 后出现的。 修改Jenkinsfile文件

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包