文章目录

  • 1.jenkins (windows 版本 Jenkins 2.346.3)
  • 2.gitLab (linux 版本:GitLab Community Edition 15.3.5
  • 3.可能出现的错
  • 4.更多添加jenkins凭据的方式

前言: 因为历史原因,公司的jenkins版本只能使用windows,而gitLab则是linux版本,简单的安装问题在本篇不做多介绍;

jenkins安装: https://blog.csdn.net/evelynnJava/article/details/126522842
gitLab安装: https://blog.csdn.net/evelynnJava/article/details/126490457

手动jenkins插件地址下载: 有时候想要低版本的插件,可以从这里下手动导入()
http://updates.jenkins-ci.org/download/plugins/ 或 https://plugins.jenkins.io/caffeine-api/#releases

1.jenkins (windows 版本 Jenkins 2.346.3)

本版应该是能兼容JDK8最后一个版本了,再往上只能是JDK11+

下载war包:https://get.jenkins.io/war-stable/2.346.3/
新建简单的启动脚本 start.bat

Title 'jenkins 9999'
java -jar jenkins.war --httpPort=9999

运行.bat文件启动,默认生成核心目录至 C:\Users\Administrator\.jenkins

如果遇到了无法下载插件的情况,和我一样处理即可。
1.点击Manage jenkins - Manage plugin - Advanced; 拉到最后面 Update Site 的地址,https 改为 http;随后重启!!
2.离线下载插件 skip-certificate-check,手动上传;随后重启。此时就能愉快的下载插件了。


开始下最重要的几个插件(重启后生效):
如果用的也是gitLab就不需要Git和 Git Client了,装下面的其他插件即可

Credentials        #签名证书管理插件
Gitlab                    #安装后从 GitLab 获取代码
Git和 Git Client          #用于 Jenkins 在 GitLab 中拉取源码
GitLab Hook                 #GitLab 触发 Jenkins 构建项目
Gitlab Authentication        # GitLab 和 Jenkins 认证插件
SSH Plugin                        #进程执行 Shell 脚本
Publish Over SSH         #用于通过 SSH 部署应用

接下来开始配置

  1. Mange Jenkins - global Tool Configuration 如图配即可,下面的环境开发人员必有的。


2. Mange Jenkins - Configure System 主要就是配置 SSH远程服务器
第一种方式- 密码

一般选择第二种方式- 密钥
进入到远程目录 /usr/local/services/ssh,在目录节点下执行如下命令,生成rsa密钥 (如果已存在会覆盖)

#生成rsa密钥,回车
ssh-keygen -t rsa
#此时目录 /root/.ssh 会生成 id_rsa:私钥  id_rsa.pub:公钥#把公钥内容追加到认证文件中
cd /usr/local/services/ssh
touch authorized_keys
cat /root/.ssh/id_rsa.pub >> authorized_keys#授权
chmod 700 /root/.ssh
chmod 700 /root/.ssh/id_rsa
chmod 700 /root/.ssh/id_rsa.pub
chmod 600 authorized_keys

把 id_rsa 私钥内容添加到 Publish over SSH 的 key 中 (或放到 ssh server 的 key中也行)


注:这里的 RemoteDirectory是通用的服务器路径,实际一般是在【具体构建的任务】中去配置,一般此行放空即可。

接下来在jenkins新建一个项目



在项目构建配置中,增加配置

如果上面全局配置中配了 Remote directory,此处可以置空。此时直接构建运行当前项目,就会将demo-0.0.1-SNAPSHOT.jar移动至服务器wrx-192.168.41.128的 /usr/local/services/ssh目录下

接下来,配置jenkins设置GitLab的钩子

注:Allowed branches :
Allow all branches to trigger this job #允许所有分支触发此作业
Filter branches by name #按名称过滤分支
Include :dev #允许触发构建的分支,dev分支提交会自动构建
Exclude:master #排除触发构建的分支,此时master分支提交不会自动构建Filter branches by regex #通过正则表达式过滤分支
Source Branch Regex: #源分支正则表达式
Target Branch Regex:.*dev #目标分支正则表达式,允许触发构建的dev分支Filter merge request by label #按标签过滤合并请求
Include: #允许触发构建的标签
Exclude: #排除触发自动构建的标签

2.gitLab (linux 版本:GitLab Community Edition 15.3.5

)
在gitLab配置前面的 url和token (url注意改成准确的ip)


如果保存不了,可能是因为本地网络安全限制,如下图红框部分勾选配即可。

此时会发现jenkins那边正在执行构建,且包会放到ssh server配置的服务器目录。

3.可能出现的错

更多问题参考这位踩坑王的。。 https://www.zhihu.com/question/485285429

例如可能gitLab hook 响应200,但是jenkins没有反应,他在jenkins生成了api的token,然后路径改为 http://admin:1166f22d175c400d712fb7a219fadedd76@192.168.1.148:9999/job/2/build?delay=0sec

ssh连接测试报错:
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@73c5aba9]

报私钥无效,一般有两种原因:
(1):可能是你配置到jenkins里的私钥没有携带起止标志-----BEGIN RSA PRIVATE KEY-----或-----END RSA PRIVATE KEY-----,这两个是要带着的
(2):如果你是最新版本的docker镜像安装的jenkins容器,那么原因可能是容器内ssh版本太高,生成的私钥格式不被新版本ssh认可。解决方案是手动生成旧格式的秘钥
(3):生成旧的格式密钥,如下:

#生成rsa密钥,回车
ssh-keygen -m PEM -t rsa -b 2048

#把公钥内容追加到认证文件中
cat /root/.ssh/id_rsa.pub >> authorized_keys

#授权
chmod 700 /root/.ssh
chmod 700 /root/.ssh/id_rsa
chmod 700 /root/.ssh/id_rsa.pub
chmod 600 authorized_keys
说明:
(1):.ssh文件夹、id_rsa、id_rsa.pub 权限为700。authorized_keys权限为600
(2):ssh-keygen -m PEM -t rsa -b 2048:
-m 参数指定密钥的格式,PEM是rsa之前使用的旧格式
-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位

4.更多添加jenkins凭据的方式

1.jenkins凭证配置gitLab token的方式

2. gitLab配置jenkins服务器上的公钥
在windows上输入如下命令,ssh-keygen -t rsa ,生成的目录:C:\Users\Administrator/.ssh/id_rsa
id_rsa:私钥
id_rsa.pub:公钥



jenkins + gitlab 自动化构建全流程记录。相关推荐

  1. unreal ue4 PixelStreaming 局域网及公有云部署全流程记录

    PixelStreaming 局域网及公有云部署全流程记录 发表于 2020-04-10 |  更新于: 2020-04-20 |  分类于 Unreal Engine |  717 写在前面 本篇是 ...

  2. GitLab CI/CD 自动化部署全流程

    CI/CD简介 CI/CD 是一种持续开发软件的方法,侧重于软件开发过程中的自动化,可以不断地进行构建.测试和部署代码.使用这种方法,从新代码开发到部署,可以减少人工干预甚至不用干预 CI(Conti ...

  3. 【DevOps】全流程记录:CentOS7安装Gitlab服务器

    文章目录 1 缘起 2 服务器 3 安装前准备 3.1 更新操作系统 3.1.1 命令 3.1.2 执行过程 3.2 安装依赖组件 3.2.1 命令 3.2.2 执行过程 3.2.3 安装后设定自动启 ...

  4. 基于Jenkins的开发测试全流程持续集成实践

    今年上半年一直在公司实践CI,本文将上半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续下半年还会深入实践和引入Kuberne ...

  5. 基于Jenkins的持续交付全流程设计与实践

    1 从理论开始 什么是DevOps? 近年来,随着DevOps理念的逐渐深入人心,企业逐渐意识到从看似重复的手工劳动中实现自动化流程处理,对于提高企业劳动生产力已经非常重要,尤其是面向互联网的开发者, ...

  6. 使用Jenkins配置自动化构建

    http://blog.csdn.net/littlechang/article/details/8642149 持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了. 为 ...

  7. Docker安装Jenkins实现自动化构建部署到Tomcat

    安装Docker 直接装一个docker-toolbox就好了,下载最下面的最新版 http://mirrors.aliyun.com/docker-toolbox/windows/docker-to ...

  8. 噬菌体展示文库构建全流程

      1.什么是噬菌体展示 噬菌体文库是用于基因克隆的噬菌体载体,噬菌体展示文库是将外源蛋白或多肽与噬菌体外壳蛋白融合,展示在噬菌体表面并保持特定的空间构象,利用特异性亲和作用以筛选特异性蛋白或多肽的一 ...

  9. 从零开始自制实现正则引擎 全流程记录

    文章目录 前引 Regex_Engine 1.0 1.全流程实现博客链接 2.源码仓库链接 前引 笔者在完成 正则引擎初版 如果算上有效时间的话 大概是花了一周的时间就完成 只包括了 最基础的正则引擎 ...

最新文章

  1. 【Python】有道翻译的爬虫实现(前篇)
  2. b+树时间复杂度_深入理解数据库系统之存储存引擎(二叉搜索树)
  3. 怎样用hibernate验证登陆界面的用户名和密码
  4. 新一代神器STM32CubeMonitor介绍、下载、安装和使用教程
  5. python随机数种子通俗_在种子中生成随机数
  6. 第2章 Python 数字图像处理(DIP) --数字图像基础3 - 图像内插 - 最近邻内插 - 双线性插值 - 双三次内插 - 图像放大
  7. oracle中的视图详解
  8. StructureMap极速上手指南(翻译)
  9. How to make your 100k to 10k (5)
  10. hdu 1251 字典树的简单应用
  11. 定时任务中cron表达式详解
  12. Matlab调用Python函数,出现OSError: [WinError 126] 找不到指定的模块报错
  13. nodejs 定时任务
  14. iOS超级签名系统源码及分析
  15. miui资源全集K60 K50 k40 k30 K20 小米14 小米13 小米12 小米11-小米6
  16. Mongodb std::exception::what(): basic_filebuf::underflow error reading the file: iostream error
  17. pygame库-Surface类-blit方法的两个参数(source, dest)的含义
  18. 测试UDP端口的方法
  19. 经济危机下看SaaS厂商的突围策略
  20. 【工业大数据】工业大数据真正要做的是智能分析和智能决策

热门文章

  1. php正态分布,如何在PHP中生成累积正态分布
  2. python中__init__下划线怎么打出来___init__()-------“_”下划线开头的函数
  3. 题目0134-竖直四子棋
  4. XM7 FOR ANDROID,Android-UI组件(一):布局管理器
  5. 罗胖2021跨年演讲小结
  6. C语言for循环语句
  7. 智能视频监控的应用方向
  8. Java通过mail发送邮件
  9. cad2014一打开几秒钟后就卡住无响应了
  10. 【论文笔记】Enabling technologies and tools for digital twin