gitlab-ci配置服务器自动拉取方式

 更新时间:2025年12月05日 08:52:46   作者:onejson  
文章主要介绍了如何在GitLab中设置和使用Runner来实现自动化部署,包括手动设置Runner,配置.gitlab-ci.yml文件,编写和放置shell脚本,以及设置免密登录

1、项目中找到

settings->ci/cd->runner->Set up a specific Runner manually

2、这里我的 gitlab-runner 已经装好过了

我们需要到 安装 gitlab 的服务器中执行下

gitlab-runner register

这个命令,这时弹出的容器中需要输入 url和token,我们使用1 中找到的

输入完以后再输入描述,自己看着写,这时还会要求输入 Enter tags for the runner

这里我理解的tags是后面 .gitlab-ci.yml 文件中一tags,他们一致时就会触发,然后进行自动化部署

这里我们输入 auto-upload-test 确定后又让你输入

Enter an executor: docker, docker-ssh, parallels, ssh, custom, shell, virtualbox, docker+machine, docker-ssh+machine, kubernetes:

这里我们会用到 shell,到时候让 gitlab-ci.yml 调用 sh 文件,我们就输入个

shell

Enter tags for the runner (comma-separated):
auto-upload-test
Registering runner... succeeded                     runner=eG2jn6vJ
Enter an executor: docker, docker-ssh, parallels, ssh, custom, shell, virtualbox, docker+machine, docker-ssh+machine, kubernetes:
shell

确定后就注册成功了,这时我们可以看见刚才设置的 runner

3、这时我们打开项目中的 .gitlab-ci.yml

这里注意,前面有个点,这里我们需要把 tags修改成我们刚才设置的

  • script 是我们要执行的脚本路径
  • only 是只在 master分支上面的代码有变化时进行操作
  • tags 就是我们之前设置的
stages:
  - deploy
deploy:
    stage: deploy
    script:
      - /root/autoupload.sh
    only:
      - master
    tags:
      - auto-upload-test  

不然会提示错误,并且执行不了

This job is stuck because you don't have any active runners online or available with any of these tags assigned to them: autopull

Go to project CI settings

这里的 autopull就是我们修改前的 tags

4、编写 sh 文件

并把 sh文件放到对应的位置中

#!/bin/bash
ssh root@192.168.*.* << ssh233
cd /usr/local/apache-tomcat-8.5.28/***
git pull origin master
pwd
ssh233

这里是利用免登录配置,把gitlab服务器上的 /root/.ssh/id_rsa.pub 里的内容复制到目标服务器中的 /root/.ssh/authorized_keys,就可以免密码登录了。

这里是在代码服务器上免密登录到目标服务器中,在目标服务器上面拉取代码

登录到对应要发布的服务器上,拉取 gitlab的代码,这样就能达到 git上传后能自动发布到对应的服务器上。这里的 * 号改成对应的ip地址与文件存放路径即可

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何使用docker compose 部署ELK 8.X及监控

    如何使用docker compose 部署ELK 8.X及监控

    这篇文章主要介绍了如何使用docker compose 部署ELK 8.X及监控,包括前置环境配置及docker compose启动/停止的命令,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Docker实现自定义jkd镜像上传阿里云

    Docker实现自定义jkd镜像上传阿里云

    本文详解基于Ubuntu构建JDK8自定义Docker镜像及上传至阿里云仓库的流程,涵盖Dockerfile编写、镜像构建、容器运行、环境变量配置,以及阿里云账户准备、镜像推送与测试等关键步骤
    2025-08-08
  • docker如何运行一个python脚本

    docker如何运行一个python脚本

    这篇文章主要介绍了docker如何运行一个python脚本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 详解如何将docker快速升级到最新版本

    详解如何将docker快速升级到最新版本

    最近在对区块链浏览器调优,该区块链浏览器就是使用docker部署的微服务,在一台新的服务器上启动时报错,发现是docker版本过低,所以本文给大家介绍了将docker快速升级到最新版本的方法,需要的朋友可以参考下
    2024-02-02
  • 使用 docker部署tomcat并接入skywalking的使用

    使用 docker部署tomcat并接入skywalking的使用

    这里主要介绍了使用 docker 部署 tomact 并接入 skywalking 的使用,因为在网上并没有查到太多相关的信息,所以这里记录下来,需要对有需求的小伙伴提供一些帮助
    2021-04-04
  • Docker 部署onlyoffice的详细过程

    Docker 部署onlyoffice的详细过程

    文章介绍了如何优化OnlyOffice的部署、Token生成、前端测试及文件转换,提升了系统的稳定性和易用性,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-11-11
  • docker 安装 Influxdb-relay及配置教程

    docker 安装 Influxdb-relay及配置教程

    这篇文章主要介绍了docker 安装 Influxdb-relay及配置教程的相关资料,需要的朋友可以参考下
    2023-08-08
  • Docker运行Web服务实战之Tomcat的详细过程

    Docker运行Web服务实战之Tomcat的详细过程

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Server Page(JSP)的支持,这篇文章主要介绍了Docker运行Web服务实战之Tomcat的详细过程,需要的朋友可以参考下
    2022-08-08
  • 一文教你轻松搞定Docker无法拉取镜像问题

    一文教你轻松搞定Docker无法拉取镜像问题

    这篇文章主要介绍了当Docker无法成功拉取镜像时可能遇到的问题以及解决方法,文中通过代码介绍的非常详细,对遇到这个问题的同学们具有一定的参考借鉴价值,需要的朋友可以参考下
    2025-02-02
  • 浅谈docker的上下文和工作目录

    浅谈docker的上下文和工作目录

    在编写Dockerfile时我们总会接触到COPY上下文和工作目录,有时候这些位置搞不清楚,本文就来介绍一下docker的上下文和工作目录,感兴趣的可以了解一下
    2025-09-09

最新评论