当前位置: 首页 > news >正文

gitlab 的CI/CD (二)

前言

上文完成了gitlab-runner的基础配置及将gitlab的制品上传至软件包库(产品库)的脚本编写;

本文实现gitlab的ci/cd对远程服务器的操作;

介绍

要让Gitlab Runner部署到远程机器,远程机器必须信任gitlab runner账户。

先执行

su gitlab-runner

切换到gitlab-runner账户

a服务器 gitlab-runner所在服务器

b服务器 部署项目的远程服务器

免密通道建立

生成密钥

a服务器上执行

ssh-keygen

或者

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

 执行后 /home/gitlab-runner/.ssh 目录下,

会新生成两个文件:id_rsa.pub和id_rsa

将a服务器公钥上传至b远程服务器的SSH(安全外壳协议)认证文件

scp -r  /home/gitlab-runner/.ssh/id_rsa.pub root@b服务器的ip:/root/.ssh/authorized_keys

 如果目标是追加公钥,可以使用 >> 操作符通过 SSH 连接来实现

cat /home/gitlab-runner/.ssh/id_rsa.pub | ssh root@b服务器的ip 'cat >> /root/.ssh/authorized_keys'

这样可以避免权限和覆盖问题。

验证

ssh root@b服务器的ip

 .gitlab-ci.yml文件编写

着重查看ssh部分编写

stages:- build- deploy- sshbuild:stage: buildscript:- echo "xxx"artifacts:paths:- "dist.tar.gz"- "update_description.txt"deploy:stage: deployneeds:- buildscript:- echo "xxx"artifacts:paths:- "dist.tar.gz"- "update_description.txt"ssh:stage: sshneeds:- deploybefore_script:# 查找安装ssh-agent# - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'- 'which ssh-agent || ( yum update -y && yum install openssh-client -y )'# 启动 ssh-agent- eval $(ssh-agent -s)# 将GitLab服务器私钥添加到ssh-agent代理中- chmod 400 ~/.ssh/id_rsa- ssh-add ~/.ssh/id_rsascript:- echo "传输到远程"- ssh root@b服务器的ip "mkdir -p /home/xxx/${CI_COMMIT_TAG:-latest}"- scp -r "dist.tar.gz" root@b服务器的ip:/home/xxx/${CI_COMMIT_TAG:-latest}/- scp -r "update_description.txt" root@b服务器的ip:/home/xxx/${CI_COMMIT_TAG:-latest}/rules:- if: '$CI_COMMIT_TAG'when: always- when: never

流水线执行完后,去远程服务器查看对应目录即可完成验证;

---------------

本文结束。 

http://www.lryc.cn/news/444923.html

相关文章:

  • 【html】基础(一)
  • 【网站架构部署与优化】Nginx优化
  • gitlab修改访问端口
  • 分库分表-分页排序查询
  • 【openwrt-21.02】openwrt PPTP Passthrough 不生效问题解决方案
  • 【编程基础知识】Mysql的各个索引数据结构及其适用场景
  • 解决IDEA出现:java: 程序包javax.servlet不存在的问题
  • Comfyui控制人物骨骼,细节也能完美调整!
  • mysql学习教程,从入门到精通,SQL LEFT JOIN 语句(23)
  • VSCode远程切换Python虚拟环境
  • 【CSS in Depth 2 精译_038】6.2 CSS 定位技术之:绝对定位
  • 828 华为云征文|华为 Flexus 云服务器搭建 SamWaf 开源轻量级网站防火墙
  • 基于二自由度汽车模型的汽车质心侧偏角估计
  • 前端html+css+js 基础总结
  • 若依VUE项目安全kind-of postcss vite漏洞扫描和修复
  • C语言实现简单凯撒密码算法
  • 多态的使用和原理(c++详解)
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【Trace调测】
  • Lombok 在 IntelliJ IDEA 中的使用步骤
  • 计算机网络 --- Socket 编程
  • git笔记之在多个分支中复用某个分支提交的更改
  • HTML、CSS
  • 数据文件(0)
  • Go语言并发模式详解:深入理解管道与上下文的高级用法
  • 标准文档流解析及 CSS 中的相关特性
  • 水下攻防面试题
  • vmware 虚拟机多屏幕或添加屏幕
  • 鹏哥C语言49-51---第6次作业:循环语句 for 和 while
  • springboot中药材进存销管理系统
  • GitHub上图像超分开源项目推荐【持续更新】