IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 使用GitLab CI/CD自动化热部署 Spring boot项目 -> 正文阅读

[Java知识库]使用GitLab CI/CD自动化热部署 Spring boot项目

目录

一.安装gitlab

二.安装gitlab-runner

?三.gitlab-runner注册

四.配置SSH秘钥

服务器采用账号密码方式登录,请按照以下配置方式配置SSH

若服务器采用秘钥文件方式登录,请按照以下配置方式配置SSH

五.安装jdk和maven

六.编写gitlab-ci.yml文件

七.项目部署


一.安装gitlab

1.安装gitlab-ce (服务器系统为centos 7)

yum install gitlab-ce?

2.配置端口

vi /etc/gitlab/gitlab.rb



#修改gitlab的访问ip和端口,ip用本机

external_url 'http://192.168.3.166:8099'


重启gitlab

gitlab-ctl reconfigure

?

二.安装gitlab-runner

1.下载可执行文件

sudo wget -O/usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

2.设置执行权限

sudo chmod +x /usr/local/bin/gitlab-runner

3.创建GitLab CI账户

?useradd --comment 'GitLab Runner'--create-home gitlab-runner --shell /bin/bash

?4.运行服务

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

gitlab-runner start?

?三.gitlab-runner注册

1.打开 gitlab 项目 -> Settings -> CI / CD -> Runners settings。记下url和token,下面注册使用。

?2.注册,在终端界面输入

sudo gitlab-runner register

输入你的 GitLab URL


Please enter the gitlab-ci coordinator URL(e.g. https://gitlab.com )

https://192.168.3.166:8099(输入上图的url)


输入 注册令牌 来注册 Runner


Please enter the gitlab-ci token forthis runner

xxx(输入上图的token)


输入 Runner 说明


Please enter the gitlab-ci description forthis runner

my-runner


输入 Runner 的 tags


Please enter the gitlab-ci tags forthisrunner(comma separated):

my-tag


输入 Runner 执行方式,这里选择shell


Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:

shell


 
到这一步gitlab和gitlab-runner就配置好了

四.配置SSH秘钥

  • 服务器采用账号密码方式登录,请按照以下配置方式配置SSH

1.配置ssh,便于远程生产环境服务器部署项目。在终端界面输入。(切换以gitlab-runner身份登录)

sudo su - gitlab-runner

2.生成秘钥,在终端继续输入

ssh-keygen -t rsa

然后一直按空格即可。不要输入密码。

3.到gitlab所在服务器的/home/gitlab-runner/.ssh/目录会看到生成的秘钥对如图所示

?4.将id_rsa.pub公钥文件拷贝到生产环境服务器中。在终端输入

cd /home/gitlab-runner/.ssh

ssh-copy-id root@192.168.0.5(此IP为生产环境服务器IP)

5.测试是否可以免密登录

ssh root@192.168.0.5

?6.将私钥内容复制到gitlab中。在终端输入

cat ~/.ssh/id_rsa

?出现如下图所示:

拷贝一下红框里的内容。

进入gitlab想要部署的项目中(没有项目可自行创建一个测试项目)。选择用户设置->CI/CD->变量

?-》Add Variable ,将秘钥填入后,点击"Add Variable"按钮.如下图所示

至此,我们的配置就完成了。

  • 若服务器采用秘钥文件方式登录,请按照以下配置方式配置SSH

1.将秘钥文件拷贝到gitlab所在服务器的/home/gitlab-runner/.ssh目录中即可。如图所示:

五.安装jdk和maven

1.请自行在gitlab所在服务器安装jdk和maven。因为这里主要讲如何配置gitlab-ci/cd,所以jdk及maven安装请自行百度,非常简单,在此略过。

六.编写gitlab-ci.yml文件

1.在自己的项目根目录创建文件"gitlab-ci.yml"。填写内容如下(没有项目的话,请自行使用IDEA创建SpringBoot项目)。

stages:
  - build

build:
  stage: build

  variables:
    docker_compose_name: control
    package_name : control-0.0.1-SNAPSHOT.jar
    server_username : root
    server_ip : 59.110.0.91
    server_path : /home/robot/robot2_control

  before_script:
    - echo "开始脚本1"
    - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - mvn -Dmaven.test.skip=true clean package
  after_script:
    #服务器为账号密码登录时,使用以下语句
    - scp  $(cd `dirname $0`; pwd)/target/${package_name} ${server_username}@${server_ip}:${server_path}/${package_name}
    - ssh  ${server_username}@${server_ip} "cd /home/robot; docker-compose stop $docker_compose_name; docker-compose --compatibility up -d  $docker_compose_name; exit"
    #服务器为秘钥文件登录时,使用以下语句
    #- scp  -i /home/gitlab-runner/.ssh/8.140.136.221_Key.pem  $(cd `dirname $0`; pwd)/target/${package_name} ${server_username}@${server_ip}:${server_path}/${package_name}
    #- ssh  -i /home/gitlab-runner/.ssh/8.140.136.221_Key.pem ${server_username}@${server_ip} "cd /home/robot; docker-compose stop $docker_compose_name; docker-compose --compatibility up -d  $docker_compose_name; exit"
    

说明:

- scp ?$(cd `dirname $0`; pwd)/target/${package_name} ${server_username}@${server_ip}:${server_path}/${package_name}? ? ?意思是将gitlab打包后的文件拷贝到生产环境服务器中。

?- ssh ?${server_username}@${server_ip} "cd /home/robot; docker-compose stop $docker_compose_name; docker-compose --compatibility up -d ?$docker_compose_name; exit"? ?意思是在服务器中重启我的项目。我用的是docker-compose方式部署的。如果读者用的是其他方式,那可以使用其他方式的命令来重启自己的项目。

七.项目部署

1.将项目传到gitlab中,进入gitlab自己的项目中,选择CI/CD。会看到如下图所示

?点对勾按钮->build,进入之后,如下图所示,会看到自己得项目已经热部署完毕。

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 23:43:10  更:2021-07-15 23:43:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 21:23:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码