01-Jenkins前置配置

简介: 本文介绍Jenkins与GitLab集成的完整配置流程,包括在GitLab创建Jenkins账号、配置SSH密钥与API Token、Jenkins端的凭据管理、全局安全设置中禁用host key验证,并配置Git用户信息。同时详述节点服务器环境搭建,如JDK、Maven、Node.js安装与环境变量配置,以及通过SSH方式将节点接入Jenkins,实现远程构建与持续集成。

Jenkins配置

系统的代码位于gitlab上,当Jenkins安装了gitlab插件、git插件之后可以很方便的连接上gitlab(在Jenkins部署文档中安装的插件已经包含了gitlab插件和git插件)。

gitlab创建账号

使用管理员登录gitlab,创建账号 jenkins,并赋予相应权限,用于在 Jenkins 中使用该账号拉取代码。

gitlab上配置SSH密钥

在docker服务器上进入Jenkins容器:

docker exec -it jenkins bash

进入容器后,生成公私密钥对:

# 执行下面的命令,然后一路回车即可
# 最后会在 /var/jenkins_home 目录中创建 .ssh 文件夹
# .ssh 文件夹中的 id_rsa 文件内容为私钥字符串,id_rsa.pub文件内容为公钥字符串
ssh-keygen -t rsa


使用前面创建的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环境变量:

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. 可用性:尽量保持代理在线(默认)


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

目录
相关文章
|
存储 安全 算法
对象存储服务-Minio
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
1915 1
|
存储 Prometheus Kubernetes
轻量级日志可视化平台Grafana Loki接入nginx访问日志
轻量级日志可视化平台Grafana Loki接入nginx访问日志
2487 0
轻量级日志可视化平台Grafana Loki接入nginx访问日志
|
7月前
|
人工智能 Java 开发者
spring-boot重试机制:Guava-Retrying
在业务开发中,请求第三方接口时常因网络问题导致失败,此时可使用重试机制解决。本文介绍基于Guava实现的guava-retrying,通过封装HTTP请求工具类并结合重试策略,提升接口调用稳定性。内容涵盖工具类编写、重试配置及监听处理,适用于Java开发者优化系统健壮性。
264 1
|
9月前
|
Kubernetes 应用服务中间件 nginx
鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
Rainbond V6 国产化部署教程,针对鲲鹏 CPU + 麒麟 V10 的离线环境,手把手教你从环境准备到应用上线,所有依赖包提前打包好,步骤写成**傻瓜式**操作指南。别说技术团队了,照着文档一步步来,让你领导来都能独立完成部署。
鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
|
人工智能 数据可视化 API
Deepseek 本地部署“网页版”与“软件版”超级详细教学(deepseek+Ollama+OpenWebUI+Chatbox AI+Cherry Studio)
近期,人工智能领域迎来了一股新的热潮,DeepSeek作为一款备受瞩目的开源语言模型,凭借其卓越的性能和广泛的应用场景,迅速在全球范围内引起了广泛关注。从技术社区到商业领域,DeepSeek的热度不断攀升,甚至有“挤爆”的趋势。这不仅反映了其强大的技术实力,也体现了市场和用户对其的高度期待。 在这样的背景下,本地部署DeepSeek模型的需求也日益增加。本地部署不仅可以避免网络延迟和数据隐私问题,还能根据用户需求进行定制化优化。结合deepseek+Ollama+OpenWebUI+Chatbox AI+Cherry Studio AI等工具,用户可以轻松实现模型的本地化部署,并通过可视化面板
1790 8
Deepseek 本地部署“网页版”与“软件版”超级详细教学(deepseek+Ollama+OpenWebUI+Chatbox AI+Cherry Studio)
|
8月前
|
Java Linux 开发者
linux 查看java的安装路径
本指南详细介绍Java环境的安装验证与配置方法,包括检查Java版本、确认环境变量JAVA_HOME是否正确配置,以及通过which和readlink命令手动定位Java安装路径。同时提供系统级环境变量配置步骤,并给出多版本管理建议。适用于Linux系统用户,特别是需要在服务器或Docker容器中部署Java环境的开发者。注意操作时需具备相应权限,确保路径设置准确无误。
|
Java
Idea自动生成注释
Idea自动生成注释
854 6
Idea自动生成注释
|
Prometheus 监控 Cloud Native
JAVA线程池监控以及动态调整线程池
【10月更文挑战第22天】在 Java 中,线程池的监控和动态调整是非常重要的,它可以帮助我们更好地管理系统资源,提高应用的性能和稳定性。
803 64
探索SPI单线传输模式:时钟线与数据传输的简化之道
SPI单线传输模式简化了微控制器与设备间的通信,仅使用MOSI线减少线路,降低成本和复杂性。时钟线SCLK在同步数据传输中仍关键,确保数据准确。虽限制了从机回传数据,但适合需要简化设计的应用。在选择设备时,注意其是否真正支持单线模式并保持同步性。随着技术进步,单线SPI将在未来继续发展。
571 1
|
弹性计算 Linux 网络安全
阿里云服务器怎么登陆,常见登陆方式教程参考
在连接实例时,首先需要完成身份验证,确保只有授权用户能够访问和管理服务器资源,以增强安全性。创建实例时,您可以选择一个系统预设的用户作为初始登陆用户。实例创建完成后,即可用该用户身份登陆。本文将详细介绍不同用户的特点与区别,以及如何管理这些用户和添加额外的远程连接用户。
5477 12

热门文章

最新文章