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挂载的目录无法读写问题

    解决docker挂载的目录无法读写问题

    这篇文章主要介绍了解决docker挂载的目录无法读写问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 利用Dockerfile部署SpringBoot项目的方法

    利用Dockerfile部署SpringBoot项目的方法

    这篇文章主要介绍了利用Dockerfile部署SpringBoot项目的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Dockerfile指令详解

    Dockerfile指令详解

    Dockerfile有十几条命令可用于构建镜像,下文将简略介绍这些命令。希望小伙伴们能够喜欢
    2016-10-10
  • Docker数据存储总结

    Docker数据存储总结

    今天小编就为大家分享一篇关于Docker数据存储总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Centos Docker的安装教程

    Centos Docker的安装教程

    本文介绍了在yum环境下安装Docker的具体步骤,包括卸载旧版本、安装依赖、配置镜像源、更新索引、安装和验证Docker,并说明了卸载Docker的方法
    2025-10-10
  • Docker安装FastDFS的方法步骤

    Docker安装FastDFS的方法步骤

    这篇文章主要介绍了Docker安装FastDFS的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • docker拉取clickhouse镜像的方法实现

    docker拉取clickhouse镜像的方法实现

    本文主要介绍了docker拉取clickhouse镜像的方法实现,解决从DockerHub拉取镜像时的网络连接问题,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • .NETCore Docker实现容器化与私有镜像仓库管理

    .NETCore Docker实现容器化与私有镜像仓库管理

    Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖。这篇文章主要介绍了.NETCore Docker实现容器化与私有镜像仓库管理,需要的朋友可以参考下
    2019-08-08
  • 给docker创建的elasticsearch容器添加密码简单步骤

    给docker创建的elasticsearch容器添加密码简单步骤

    在使用Elasticsearch(ES)Docker容器时,有时需要设置密码来保护数据的安全性,这篇文章主要给大家介绍了关于给docker创建的elasticsearch容器添加密码的简单步骤,需要的朋友可以参考下
    2024-02-02
  • docker搭建rabbitmq实现步骤

    docker搭建rabbitmq实现步骤

    这篇文章主要为大家介绍了docker搭建rabbitmq实现步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论