ubuntu16.04部署gitlab-runner触发gitlab流水线

news2025/1/10 16:00:27

环境:ubuntu16.04
gitlab服务器:192.168.1.12
runner服务器:192.168.1.11

1.下载

环境:192.168.1.11

cd /usr/local/src

wget https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb

sudo dpkg -i gitlab-runner_amd64.deb

2.使用gitlab-runner用户创建密钥

su gitlab-runner
ssh-keygen -t rsa

将生成的密钥保存在gitlab有所有项目权限的用户密钥中

3.使gitlab-runner登录其他服务器为免密登录

cd /home/gitlab-runner/.ssh/
scp id.rsa.pub www@192.168.1.12:/home/www/.ssh/id_rsa.pub_12
cat id_rsa.pub_12 >> authorized_keys

ssh-copy-id -i ~/.ssh/id_rsa.pub  www@192.168.1.12

4.注册项目

项目token地址:http://gitlab.xxx.com/root/docs/-/settings/ci_cd

gitlab-runner必须使用root权限来注册项目与gitlab关联,非root用户注册可使用sudo提权注册

root@gitlab-runner:/home/gitlab-runner/builds# gitlab-runner register
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://gitlab.xxx.com/                 #输入gitlab地址
Enter the registration token:
SsDsdaCNqA8M9                           #输入要注册项目的token
Enter a description for the runner:
[gitlab-runner]: pro                    #输入gitlab-runner的描述
Enter tags for the runner (comma-separated):
pro                                     #输入gitlab-runner的tag
Registering runner... succeeded                     runner=SsDzsjjC
Enter an executor: ssh, docker-ssh+machine, virtualbox, docker+machine, kubernetes, custom, docker, docker-ssh, parallels, shell:
shell                                   #输入触发gitlab-runner后执行的方式
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

第一个参数输入gitlab地址
第二个参数输入要注册项目的token
第三个参数输入gitlab-runner的描述
第四个参数输入gitlab-runner的tag
第五个参数#输入触发gitlab-runner后执行的方式

注册成功以后gitlab-runner的状态会变成绿色,意为正在运行;
若为红色,意为停止运行

刚注册完,需等待1分钟左右才会变成绿色,变成绿色以后就可以编写触发脚本了

5.编写触发脚本

在gitlab项目的根目录添加.gitlab-ci.yml以及shell脚本

  • example for .gitlab-ci.yml
stages:
  - master
job 1:
  stage: master
  only:
    - master
  script:
    - whoami
    - ssh -tt www@192.168.1.12 bash /data/www/bin/deploy.sh
  tags:
    - pro

  • example for deploy.sh
#!/bin/bash
# script_name : deploy.sh
set -e
# 加载环境变量
source /etc/profile

# 进入目录,更新代码
cd  /data/www/website/
git pull origin master

# 安装依赖
yarn install

# 开始构建
yarn build

# 更新代码
rsync -zcav -e ssh dist/* server01:/data/www/website

流水线语法及CI模板详见官网

6.一些说明

第一次触发前,先手动在192.168.1.12上手动拉取代码

由于gitlab部署在内网,无公网ip,因此这里是将gitlab服务器【192.168.1.12】作为项目代码的中转,通过shell脚本同步代码到目标服务器上。

完整流程:
1.本地push代码到gitlab仓库master分支
2.根据gitlab-ci.yml触发runner执行master分支流水线
3.runner会ssh到代码中转服务器即gitlab服务器【192.168.1.12】执行shell脚本,进行拉取、构建、发布操作。
4.流水线任务结束。

也可将gitlab与gitlab-runner部署到同一台服务器上,这样gitlab-ci.yml文件中无需ssh命令到中转服务器上,直接进入到指定目录操作即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1267477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【新手解答1】深入探索 C 语言:变量名、形参 + 主调函数、被调函数 + 类和对象 + 源文件(.c 文件)、头文件(.h 文件)+ 库

C语言的相关问题解答 写在最前面目录 问题1变量名与变量的关系与区别变量和数据类型形参(形式参数)的概念 问题2解析:主调函数和被调函数延伸解析:主调函数对于多文件程序的理解总结 问题3类和对象变量和数据类型变量是否为抽象的…

带大家做一个,易上手的家常蒜薹炒瘦肉

首先 从冰箱那一块瘦肉 用水化一下冰 然后 那一把蒜薹 将所有蒜薹头和尾部去掉一小节 这个地方是不能吃的 然后 剩下的部分 切成如下图这样 一小条一小条的样子 然后 将蒜薹倒入盆中清水洗一下 瘦肉清洗一下 然后切片 然后 直接起锅烧油 油烧热后马上下肉翻炒 一定要大点翻…

【css】调整图片样式-铅笔画-以及其它

[css]调整图片样式-铅笔画-以及其它 在这个网址下有很多实例&#xff0c;尝试了其中几个&#xff0c;成功实现的对半分。使用Micsoft&#xff0c;估计是不支持一些特性导致的。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UT…

Docker的数据持久化;Docker网络;Dockerfile编写

Docker的数据持久化&#xff1b;Docker网络&#xff1b;Dockerfile编写&#xff1b; 文章目录 Docker的数据持久化&#xff1b;Docker网络&#xff1b;Dockerfile编写&#xff1b;**Docker的数据持久化**1&#xff09;将本地目录映射到容器里2&#xff09;数据卷3&#xff09;将…

开放式耳机怎么选最好?主流的几款深度评测,手把手教你选

在选择开放式耳机时&#xff0c;面对市场上琳琅满目的产品&#xff0c;很多消费者可能感到困惑&#xff0c;不同的品牌、型号和特性使得挑选最适合自己需求的开放式耳机变得复杂。 本文将为大家提供一份深度评测&#xff0c;手把手教您如何选购最优质的开放式耳机。我们将重点…

【JavaSE】:接口(二)

接口 一.对学生进行排序二.Clonable接口三.抽象类和接口的区别四.Object类 一.对学生进行排序 很明显我们直接对学生进行排序是会报错的&#xff0c;因为编译器也不知道你需要按照名字排还是分数排&#xff0c;我们点击报错位置进入sort内部。 在sort内部我们可以看到它把数组转…

linux 应用开发笔记---【I/O文件/基础篇 】

文章笔记来自于【速学Linux】手把手教你学嵌入式Linux C应用编程_哔哩哔哩_bilibili 一&#xff0c;什么是linux应用程序 1.运行在linux操作系统用户空间的程序 2.内核程序运行在内核空间&#xff0c;应用程序运行在用户空间 在终端执行的命令ls,ps。。。。。。都是运行在用…

计算机视觉的应用20-图像生成模型(Stable Diffusion)的原理详解与相关项目介绍

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用20-图像生成模型&#xff1a;Stable Diffusion模型的原理详解与相关项目介绍。大家知道现在各个平台发的各种漂亮的女生&#xff0c;这些漂亮的图片是怎么生成的吗&#xff0c;其实它们底层原理就是…

Windows关闭端口服务命令

winR 打开命令运行 cmd 命令netstat -o -n -a | findstr :9993 显示所有的端口占用情况 -a 显示所有连接和监听端口 -n 以数字形式显示地址和端口号。 此选项一般与 -a选项组合使用 -o 显示与每个连接相关的所属进程 ID 终止 PID taskkill /F /PID 3652

C51--4G模块

EC03-DNC&#xff1a;4G通信模块 EC03-DNC 功能特点&#xff1a; 采用最新4G CAT1方案&#xff1b; 支持数据透明传输; 支持TCP、UDP 网络协议; 支持心跳包、注册包功能最大支持64个字节数&#xff1b; 支持MQTT协议&#xff0c;支持接入OneNet平台、百度云平台、阿里云平台的…

freeRTOS异常处理函数分析(以RISC-V架构进行分析)

1、异常处理函数的注册 对RISC-V架构中断不熟悉&#xff0c;可参考博客&#xff1a;《RISC-V架构——中断处理和中断控制器介绍》&#xff1b; 2、异常处理函数分析 2.1、数调用关系 freertos_risc_v_trap_handler //异常处理函数入口portcontextSAVE_CONTEXT_INTERNAL //保存…

字符串函数精讲1

又是好几天没有更新了&#xff0c;最近有些忙&#xff0c;但这并不是理由&#xff0c;还是怪我自己玩的时间多了&#xff01;但还是有在每天敲代码的&#xff01;话不多说&#xff0c;开始这一期的学习&#xff1a; strlen的使用和模拟实现 • 字符串以 \0 作为结束标志&#…

Python实现学生信息管理系统(详解版)

Python实现学生信息管理系统-详解版 个人简介实验名称&#xff1a;学生信息管理系统系统功能实验步骤详讲添加入住学生信息删除学生的住宿信息修改学生的住宿信息查询学生的住宿信息显示所有学生住宿信息显示所有请假学生的信息 运行截图展示1.主界面2.添加新的入住学生信息3.显…

Java LeetCode篇-深入了解关于单链表的经典解法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 移除链表元素 1.1 使用双指针方法 2.0 反转链表 2.1 递归法 2.2 头插法 3.0 链表中倒数第 k 个节点 3.1 递归法 3.2 快慢指针 4.0 合并两个有序链表 4.1 递归法 …

java科学计数法表示数值

Background 大多数计算器及计算机程序用科学记数法显示非常大和非常小的结果&#xff1b;但很多时候&#xff0c;我们需要做一个统一&#xff0c;要么全部以科学计数法输出&#xff0c;要么就全部显示为普通计数。注意&#xff1a;这里对大于等于1的数据做了特殊处理&#xff0…

RocketMQ源码剖析之createUniqID方法

目录 版本信息&#xff1a; 写在前面&#xff1a; 源码剖析&#xff1a; 总计&#xff1a; 版本信息&#xff1a; RocketMQ-5.1.3 源码地址&#xff1a;https://github.com/apache/rocketmq 写在前面&#xff1a; 首先&#xff0c;笔者先吐槽一下RocketMQ的官方&#xff0…

用代码评论代替代码注释

在一个软件项目中&#xff0c;某些逻辑部分可能非常复杂&#xff0c;容易让人困惑。为了确保其他开发人员能够理解这些代码&#xff0c;同时也为了自己回顾时能够快速上手&#xff0c;我们通常会编写相关文档或添加大量注释来对这些复杂的逻辑进行解释。这样做的好处是能够提高…

1.自动化运维工具Ansible的安装

1.物料准备 四台服务器&#xff0c;其中一个是主控机&#xff0c;三个为host 2.安装 在主控机上安装ansible 2.1 设置EPEL仓库 Ansible仓库默认不在yum仓库中&#xff0c;因此我们需要使用下面的命令启用epel仓库。 yum install epel-release -y2.2 执行安装命令 yum i…

香港人均gdp世界排名,和内地相比怎么样?

香港人均gdp世界排名&#xff0c;和内地相比怎么样&#xff1f; 香港作为世界贸易港口&#xff0c;也是中国最发达的城市之一。其经济相比于北上广深而言&#xff0c;都要发达。香港人均收入世界排名第18&#xff0c;人均收入为4.2万美元&#xff0c;在世界各国人均收入排名中处…

八个优秀开源内网穿透工具

内网穿透&#xff08;NAT穿透&#xff09;是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”&#xff0c;将公共的网络地址转为内部网络地址&#xff0c;从而实现通过英特网可以访问局…