Jenkins前置配置

简介: 本文介绍Jenkins与GitLab集成的完整配置流程,包括:在GitLab创建Jenkins账号并配置SSH密钥;Jenkins中设置GitLab API Token、关闭host key验证;配置全局Git用户名邮箱;添加私钥凭据用于拉取代码;节点服务器环境准备,部署JDK、Maven、Node等开发工具,并配置Docker环境;最后在Jenkins中添加SSH节点,指定远程工作目录与Java路径,实现任务分发与持续集成。

Jenkins配置
系统的代码位于gitlab上,当Jenkins安装了gitlab插件、git插件之后可以很方便的连接上gitlab(在Jenkins部署文档中安装的插件已经包含了gitlab插件和git插件)。
gitlab创建账号
使用管理员登录gitlab,创建账号 jenkins,并赋予相应权限,用于在 Jenkins 中使用该账号拉取代码。
gitlab上配置SSH密钥
在docker服务器上进入Jenkins容器:
进入容器后,生成公私密钥对:

使用前面创建的jenkins账号登录gitlab,进入 用户设置 - SSH密钥 - 添加新密钥,将刚刚生成的.id_rsa.pub文件内容(公钥)粘贴进来,标题可以任意起,到期时间清空。

Jenkins上配置不验证gitlab的host key
首次连接时,Jenkins的know_hosts中没有gitlab地址,如果验证host key则可能会校验失败。
可以配置不验证host key:
1
使用admin登录Jenkins
2
进入 系统管理 - 全局安全配置
3
找到Git Host Key Verification Configuration,将Host key验证策略改为No verification不验证

Jenkins上配置gitlab api token
使用jenkins账号登录 gitlab,进入 用户管理 - 访问令牌 - 添加新令牌:
1
令牌名称可以任意起
2
到期时间清空
3
选择为token授权范围,如果不清楚直接都勾上即可。
4
点击创建个人访问令牌
页面会显示创建出来的token字符串,将该token复制出来等会用。

使用admin登录 Jenkins ,进入 系统管理 - 凭据管理 - System - 全局凭据 - add Credentials新建一个凭据:

类型:Gitlab API Token

范围:全局

API Token:前面复制的token字符串

ID:任意起,例如叫做gitlab-jenkins

进入 系统管理-系统配置,找到GitLab项,配置Gitlab连接:

Connection name:任意起,例如docker-gitlab

Gitlab host URL:填写GitLab的URL(http://192.168.xxx.xxx:8090/)

Credentials:选择刚刚创建的GitLab API Token
点击Test Connection验证是否连通。

jenkins配置git用户名和邮箱
使用admin登录 Jenkins ,进入 系统管理-系统配置,找到Git plugin项,配置git用户名和邮箱:

Global Config user.name Value:配置git的user.name,配置为jenkins

Global Config user.email Value:配置git的user.email,配置为jenkins@amarsoft.com

Jenkins上配置jenkins服务器的私钥
Jenkins上创建自己的私钥凭据,用于jenkins任务从gitlab上拉取代码。

使用admin登录 Jenkins ,进入 系统管理 - 凭据管理 - System - 全局凭据 - add Credentials新建一个凭据:

类型:SSH Username with private key

范围:全局

API Token:前面复制的token字符串

ID:任意起,例如叫做gitlab-jenkins-private

Username:jenkins(jenkins容器中的服务器用户名)

Private Key:

勾选Enter directly

添加key

将Jenkins容器中之前创建的公私钥对的私钥粘贴进来(即id_rsa文件内容)

节点服务器配置
节点服务器环境准备
在节点服务器上创建/root/.jenkins文件夹,作为Jenkins的远程工作目录。Jenkins服务器会给该文件夹发送两个jar包用于远程连接。

在节点服务器上创建build文件夹,用于存放打包编译等所需的环境。
build文件夹内需要有:

JDK 17 解压版安装包:用于连接上Jenkins服务器

JDK 8 解压版安装包:用于编译程序项目

Node-v12 解压版安装包:用于编译前端VUE项目

maven-3.6.3 解压版安装包:用于编译程序项目。(maven需要在settings.xml中配置好内网的nexus私仓路径、本地仓库路径)

mvn-repo文件夹:作为maven的本地仓库路径,存放maven下载的jar包

source文件夹:用于存放从gitlab上拉取的代码

配置Maven环境变量:
新建文件/etc/profile.d/maven.sh,写入Maven环境变量:
1
2
3
4
export MAVEN_HOME=/root/build/apache-maven-3.6.3
export M2_HOME=/root/build/apache-maven-3.6.3

export PATH=$M2_HOME/bin:$PATH

另外,项目使用Jenkins打包编译之后会制作Docker镜像,所以项目的节点服务器需要安装配置好docker环境。

Jenkins配置节点服务器
正常的创建节点服务器。
使用admin登录Jenkins,进入系统管理-节点和云管理-New Node,创建一个节点:
1
节点名称:可以任意起,最好起一个方便识别服务器IP的,例如直接用服务器IP:192-168
2
选择固定节点
3
Number of executors配置为1,防止一台服务器并发执行多个任务时出现冲突
4
远程工作目录/root/.jenkins
5
标签:配置为方便识别的标签,后面配置项目时可以根据服务器标签选择在哪个服务器上执行。myproject_dev
6
用法:只允许运行绑定到这台服务器上的JOB
7
启动方式:Lauch agents via SSH(需要安装了SSH对应插件才有该选项,前面安装的插件包中已经包含了该插件)
主机:服务器IP
Credentials:登录的凭据,如果已经创建过则直接选,没有创建过则新建。可以选择新建一个Username with Password的,直接配置服务器用户名密码即可。Host Key Verification Strategy:配置为不验证Host
点开高级,在Java路径上配置上节点服务器的JDK 17路径 /root/build/jenkins/jdk-17.0.12/bin/java
8
可用性:尽量保持代理在线(默认)

创建之后,点击查看日志,看是否连接成功。

目录
相关文章
|
6月前
|
Java Maven 数据安全/隐私保护
nexus私仓环境搭建
本文介绍Nexus Repository Manager OSS的安装与配置,包括JDK环境准备、Nexus下载解压、用户创建及服务启动。详细说明如何配置Maven、Docker私仓,实现jar包上传与镜像推送,并支持匿名访问。同时涵盖npm、helm等仓库的搭建要点,适用于企业级私有化部署需求。(239字)
623 0
|
安全 jenkins 网络安全
Jenkins中node节点添加之SSH方式2
Jenkins中node节点添加之SSH方式2
1338 1
|
jenkins 持续交付 Docker
Jenkins - 插件安装失败处理方法
Jenkins - 插件安装失败处理方法
11489 1
Jenkins - 插件安装失败处理方法
|
数据安全/隐私保护 Docker 容器
docker版Minio接入LDAP
因为官网的LDAP文档接入写的过于分散,实在不利于新手部署,所以重新整理了一版,方便用户能一次部署完成
2872 1
docker版Minio接入LDAP
|
3月前
|
Kubernetes 安全 应用服务中间件
Kubernetes 官方再出公告,强调立即迁移 Ingress NGINX
北京时间 1 月 30 日,Kubernetes 指导委员会和安全响应委员会在 kubernetes.io 再次发出公告《Ingress NGINX: Statement from the Kubernetes Steering and Security Response Committees》,并通过 CNCF 官方微信公众号发布中文版公告。
253 34
|
6月前
|
前端开发 JavaScript 测试技术
构建可维护的前端架构:从混乱到清晰的演进之路
在现代 Web 开发中,前端工程的复杂度正以前所未有的速度增长。从简单的 jQuery 脚本到如今基于 React、Vue 或 Svelte 的大型应用,开发者不仅要关注功能实现,更要思考如何构建一个可维护、可扩展、可测试的前端架构。本文将探讨如何从“能跑就行”的代码演进为结构清晰、职责分明的前端系统。
|
6月前
|
存储 算法 Java
链表(链式存储)基本原理
本文介绍了单链表与双链表的基本结构及操作。相比力扣中简单的单链表,实际编程中的链表多为支持泛型的双链表,具备prev和next指针,可双向遍历。链表无需连续内存,增删高效,无容量限制,但不支持随机访问。文章详解了链表的查、改、增、删操作,尤其通过虚拟头节点简化边界处理,并对比单双链表差异,为后续实现完整链表API打下基础。
129 0
|
6月前
|
数据采集 监控 NoSQL
用n8n打造自愈型用例库与质量知识图谱
三年前,测试团队困于臃肿用例库与信息孤岛。我们基于n8n构建自愈型质量管理系统,打通需求、缺陷与测试数据,实现用例自动修复、智能推荐与持续优化,让质量知识自主进化。
|
11月前
|
安全 测试技术 开发工具
Git协作方案
本文介绍了基于特性分支的Git规范与工作流,涵盖分支管理、开发流程、提交规范及常见问题处理,助力团队高效协作与代码管控。
643 0
|
传感器 存储 供应链
plant simulation物流系统仿真案例
plant simulation物流系统仿真案例
1353 0

热门文章

最新文章