Jenkins服务安装配置

news2024/12/24 21:15:35

什么是 Jenkins

Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI,Continuous Integration)和持续交付/持续部署(CD/CD,Continuous Delivery/Continuous Deployment)。它帮助开发团队自动化构建、测试、部署和交付软件的过程,从而提高软件开发的效率和质量。

Jenkins 下载安装

Jenkins启动包官网下载地址:https://www.jenkins.io/download/

下载完成后把 jenkins.war 包上传到 Linux 服务器上 (windows 或 linux 都是这个包)

注意:如果jenkins版本太高,需要使用JDK11或更高才能启动Jenkins服务。并不影响你在 Jenkins 中构建或部署使用 JDK 8 开发的代码。

Linux 环境准备

JDK17:用于启动Jenkins服务

JDK8:你的代码中使用的是JDK8的话,Jenkins使用JDK8编译打包你的代码。

Maven3.6+:Jenkins编译你的代码需要的maven版本。

Git:Jenkins拉取你的Git仓库代码。git 已经把 ssh 公钥配置到git代码仓库。
SSH:Linux服务器允许用户远程连接到系统,进行管理、维护和文件传输。

启动 Jenkins 服务,命令如下:

java -jar jenkins.war

浏览器打开 Jenkins 页面:http://127.0.0.1:8080/

安装推荐的插件,因为我们不知道要安装哪些插件,推荐的插件会把保证使用的插件安装上来

插件安装中,等待插件安装完成

插件安装完成之后,会进入到创建管理员账号密码页面


修改 admin 账号的密码

因为上面的admin账号的密码不生效,还是原来的 /root/.jenkins/secrets/initialAdminPassword 路径下的密码,所以这个要修改一下密码


Jenkins 配置环境

配置 中文插件

搜索 local和Localization: Chinese (Simplified) 插件,点击 Install after restart 安装后重启Jenkins服务

进入 Dashboard->Manage Jenkins->Appearance,配置如下


配置 Maven 插件

1. 下载 Maven 插件

搜索 Maven Integration,点击 Install after restart 安装后重启Jenkins服务

2. 配置 Maven

进入 Dashboard->Manage Jenkins->Tools


配置JDK

进入 Dashboard->Manage Jenkins->Tools


配置 Git

进入 Dashboard->Manage Jenkins->Tools

linux 使用 which git 命令查看 git可执行文件的路径

配置 Git 登录的账户密码

进入 Dashboard->Manage Jenkins->Credentials


Jenkins 配置任务

构建 maven 任务

1. 新建 maven 任务

2. 配置任务Git

保存之后构建,就可以看到 jenkins 在向 git 仓库中拉取代码了

如果还想maven构建完成之后再发布,因为主要讲的不是maven项目,所以还想maven发布的,请看这里 https://download.csdn.net/download/a1053765496/11192998


构建流水线项目 

下载 pipeline、blue ocean 插件

1. 新建流水线任务

2. 编写声明式流水线脚本

脚本结构如下:

pipeline{
    agent any
    tools {
        jdk 'jdk1.8'
    }
    stages{
        stage("拉取代码"){
            steps {           
                echo '拉取成功'
            }
        }
    }
    post{            
        always{
            echo 'always say goodbay'
        }
    }
}

脚本说明

pipeline{        // 声明这是一个 Pipeline 脚本

    agent any    // 表示这个 Pipeline 可以在任何可用的 Jenkins 节点(agent)上运行。
    // agent none   # 表示在 Pipeline 的顶层不指定任何全局的 agent,通常用于在每个 stage 中单独指定 agent。适用于需要在不同阶段使用不同环境的情况。
    // agent {    // 使用指定的 Docker 镜像作为运行环境。Jenkins 会启动一个 Docker 容器来运行 Pipeline
    //    docker {
    //        image 'maven:3.6.3-jdk-8'
    //        label 'docker'
    //    }
    // }
    // agent ... 还有很多写法

    tools {
        jdk 'jdk1.8'         // 指定 mvn 命令使用的jdk版本, 这里的 'jdk1.8' 是在全局工具配置中设置的 JDK 名称
    }

    stages{                  // 定义了流水线的不同阶段(stages),每个阶段包含一个或多个步骤(steps)
        stage("拉取代码"){    // 表示一个阶段,包含一个名称和一些步骤。
            steps {            // 定义了该阶段内的步骤,可以是 shell 脚本、构建命令等。
                echo '拉取成功'
            }
        }
    }
    post{            // 定义在流水线结束后执行的步骤,根据执行结果(成功或失败)执行不同的操作。
        always{
            echo 'always say goodbay'
        }
    }
}

打印 pipeline 工作目录,拉取下来的代码就存在工作目录中

pipeline {
    agent any
    stages {
        stage('打印 pipeline 工作目录') {
            steps {
                script {
                    echo "Workspace: ${env.WORKSPACE}"
                }
            }
        }
    }
}

修改 pipeline 工作目录

pipeline{
    agent any
    stages{
        stage("拉取代码"){
            steps {
                dir('/app/aaa') {    # 修改工作目录,这样 git 拉取下来的代码就在修改后的目录,可以一个项目一个目录,避免多个项目在一个目录下的混乱
                    git branch: 'test', credentialsId: 'cedc056b-9f2d-4375-be48-f0d124ca069c', url: 'git@codeup.aliyun.com:659542b3e7f9ce3ec819b592/ppl_boot.git'
                    echo '拉取成功'
                }
            }
        }
    }
}

3. 使用 pipeline 脚本自动拉取 git 仓库的代码

pipeline{
    agent any
    stages{
        stage("Git拉取代码"){
            steps {
                dir('/app/aaa') {
                    git branch: 'test', credentialsId: 'cedc056b-9f2d-4375-be48-f0d124ca069c', url: 'git@codeup.aliyun.com:659542b3e7f9ce3ec819b592/ppl_boot.git'
                    echo '拉取成功'
                }
            }
        }
    }
    post{            
        always{
            echo 'always say goodbay'
        }
    }
}

4. 使用 maven 打包拉取下来的代码

pipeline{
    agent any
    tools {
        jdk 'jdk1.8' // 指定 mvn 命令使用的jdk, 这里的 'jdk1.8' 是在全局工具配置中设置的 JDK 名称
    }
    stages{
        stage("Git拉取代码"){
            steps {
                dir('/app/aaa') {    // 指定 pipeline 的工作目录
                    git branch: 'test', credentialsId: 'cedc056b-9f2d-4375-be48-f0d124ca069c', url: 'git@codeup.aliyun.com:659542b3e7f9ce3ec819b592/ppl_boot.git'
                    echo '拉取成功'
                }
            }
        }
        stage("Maven打包代码"){
            steps {
                dir('/app/aaa') {    // 指定 pipeline 的工作目录
                    // shell 脚本代码, 不需要加 #!/bin/bash 因为 sh 时 Jenkins 默认会使用 Shell 来运行这些命令。 sh """执行多行shell脚本命令的语法"""
                    sh """ 
                    mvn clean install -Dmaven.test.skip=true
                    """
                    echo '构建完成'
                }
            }
        }
        
    }
    post{            
        always{
            echo 'always say goodbay'
        }
    }
}

5. 发送 jar 包到测试/生产服务器

下载 Publish Over SSH 插件

明天继续

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

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

相关文章

48.【C语言】结构体补充

承接20.【C语言】初识结构体(重要)中的结构体成员的访问 目录: 1.结构体创建 2.利用函数控制结构体 3.使用“结构体指针变量-->结构体成员变量”来修改结构体的数据 4.传值还是传址? 1.结构体创建 依据第20篇,可以…

Kafka【三】Windows下安装Kafka集群

前文:Kafka【一】Windows下安装单节点Kafka ① 安装ZooKeeper 在D:\创建文件夹kafkacluster,将kafka安装包kafka_2.12-3.6.1解压缩到kafka文件夹。 修改文件夹名为kafkazk 因为kafka内置了ZooKeeper软件,所以此处将解压缩的文件作为ZooKeep…

Ubuntu20.04可以同时安装ROS(Noetic)和ROS2(Humble)

Ubuntu系统确实可以同时安装ROS(Robot Operating System)和ROS2,但需要注意一些关键步骤和配置以确保两者能够顺利共存并独立运行。以下是在Ubuntu上同时安装ROS和ROS2的详细步骤和注意事项: 安装前准备 检查Ubuntu版本&#xff…

CTFHub SSRF靶场通关攻略

内网访问 首先进入环境 在url后面输入 http://127.0.0.1/flag.php访问,得出flag 伪协议读取文件 进入环境后再url后面拼接 file:///var/www/html/flag.php 访问后是???,那么我们F12检查源码得出flag 端口扫描 我们进行…

【苍穹外卖】Day2 员工接口 分类接口

1 新增员工 1.1 设计 前端表单: 路径:/admin/employee 方法:POST 本项目约定: 管理端发出的请求,统一使用 /admin 作为前缀 用户端发出的请求,统一使用 /user 作为前缀 存在数据库中的实体类对象: pac…

73 OSPF图解LSA(华三)

71 OSPF多区域实验(华三)-CSDN博客文章浏览阅读166次,点赞8次,收藏3次。实操https://blog.csdn.net/qq_56248592/article/details/141563010?spm=1001.2014.3001.5501 一 基础配置省略 上次的原图基础上扩展

openGuass——表空间、数据库、Schema详解

目录 一、表空间 二、数据库 三、模式:Schema 四、database schema table之间的关系 五、表 六、分区表 七、索引 八、视图 九、序列 十、同义词 十一、约束 一、表空间 自带了两个表空间:pg_default和pg_global。查看命令:\db 默认表空间pg…

力扣刷题(2)

寻找两个正序数组的中位数 寻找两个正序数组的中位数-力扣 思路: 合并两个正序数组找中位数 double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {int arr[nums1Size nums2Size];int n1 0, n2 0;int m 0;int q;//合并两个正序数组w…

非阻塞轮询

目录 前言1.options 参数2. 非阻塞轮询3. 模拟非阻塞轮询4. 非阻塞轮询 执行其它任务 前言 继上一篇文章 详谈进程等待 讲到 waitpid 系统调用,在该系统调用接口中还有一个 options 参数,本篇文章介绍 watipid 系统调用中的options 参数 以及 什么是非…

numpy 中的降维与升维

升维(Dimensionality Augmentation):增加数据的维度,通常用于提供更多信息或从不同的角度看待数据。 降维(Dimensionality Reduction):减少数据的维度,通常用于简化数据或去除无关紧…

微信删除了好友如何恢复?试试这3种方法,赶紧收藏!shuju

推荐3种恢复微信聊天记录的方法,帮你找回微信好删除好友的聊天记录! 操作简单,可用于iOS、安卓手机和PC电脑端 1、万兴数据管家 点击直达官网下载>>https://huifu.wondershare.cn 万兴数据管家是一款专业的微信数据恢复软件。 支持苹…

免费屏幕录制软件有哪些?2024年最新测评15款录屏软件排行榜!

免费屏幕录制软件有哪些?2024年最新测评15款录屏软件排行榜! 录屏软件数不胜数,百度一搜跳出来成百上千款录屏软件!专业的用起来太复杂,简单的又不堪其用!还有各种各样防不胜防的套路。如果你没有像我一样深度了解过不同录屏软件…

基于huggingface peft进行qwen1.5-7b-chat训练/推理/服务发布

一、huggingface peft微调框架 1、定义 PEFT 是一个为大型预训练模型提供多种高效微调方法的Python库。 微调传统范式是针对每个下游任务微调模型参数。大模型参数总量庞大,这种方式变得极其昂贵和不切实际。PEFT采用的高效做法是训练少量提示参数(Prompt Tuning…

Datawhale X 李宏毅苹果书 AI夏令营 task2

《深度学习详解》 - 自适应学习率(Task2) 1. 自适应学习率的背景与重要性 学习率的挑战: 在训练深度学习模型时,选择合适的学习率至关重要。过大的学习率会导致训练过程中的震荡,使模型无法收敛;过小的学…

在 Navicat BI 中创建自定义字段:自定义排序顺序

在 Navicat BI 中,数据源引用你连接中的表或文件/ODBC 源中的数据,并可从不同服务器类型的中选择数据。数据集中的字段可用于构建图表。事实上,在构建图表时,你需要指定用于填充图表的数据源。 正如我们在整个系列中所看到的&…

html+css网页设计 个人网站模版 个人博客12个页面

htmlcss网页设计 个人网站模版 个人博客12个页面 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码…

【Material-UI】Radio Group中的独立单选按钮详解

文章目录 一、Radio 组件概述1. 组件介绍2. 基本用法 二、Radio 组件的关键特性1. 选中状态控制2. 关联标签3. 自定义样式和图标4. 使用 FormControlLabel 提供标签支持 三、Radio 组件的实际应用场景1. 表单中的单选题2. 设置选项3. 导航选择 四、注意事项1. 无障碍支持2. 样式…

开源产品GeoMesa、MobilityDB存在哪些不足

友情链接: •时空数据库系列(一)什么是时空数据?特征和适用场景有哪些? •时空数据库系列(二)时空数据库介绍 了解数据模型与应用场景 •时空数据库系列(三)技术讲解&…

Linux网口指令

一 查看配置 ifconfig 二 修改IP sudo ifconfig ens33 192.168.150.100 netmask 255.255.255.0

一键复制模板,乔拓云助力小程序快速上线

选择乔拓云模板开发小程序,成本低且高效,适合各行业快速搭建。注册账号后,进入模板中心,轻松找到匹配行业的模板。模板内容自定义灵活,图片、文字随心修改,右侧编辑区操作直观。 小程序开发步骤概览&#x…