Jenkins的安装和helloworld Pipeline

文章目录

  • 环境
  • 安装
    • 下载安装
    • 启动
    • 初始化
  • Pipeline
    • UI
    • SCM(Source Control Management)
      • 准备
      • pipeline
  • 参考

环境

  • RHEL 9.3
  • Jenkins 2.44.0.1

安装

参考 https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos

下载安装

[ding@192 ~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2024-03-02 18:13:19--  https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io (pkg.jenkins.io)... 2a04:4e42:1a::645, 151.101.110.133
Connecting to pkg.jenkins.io (pkg.jenkins.io)|2a04:4e42:1a::645|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’/etc/yum.repos.d/jenkins.repo                               100%[========================================================================================================================================>]      85  --.-KB/s    in 0s      2024-03-02 18:13:20 (3.03 MB/s) -/etc/yum.repos.d/jenkins.repo’ saved [85/85]
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade
sudo yum install fontconfig java-17-openjdk # Add required dependencies for the jenkins package
sudo yum install jenkins
sudo systemctl daemon-reload

启动

设置开机启动:

sudo systemctl enable jenkins

启动:

sudo systemctl start jenkins

检查Jenkins状态:

[ding@192 ~]$ sudo systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration ServerLoaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; preset: disabled)Active: active (running) since Sat 2024-03-02 18:18:30 CST; 19s agoMain PID: 9453 (java)Tasks: 49 (limit: 22752)Memory: 1.0GCPU: 34.636sCGroup: /system.slice/jenkins.service└─9453 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080Mar 02 18:18:12 192.168.1.11 jenkins[9453]: 9cc784ffe4ad46e4bb2b8a1a4116839b
Mar 02 18:18:12 192.168.1.11 jenkins[9453]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
Mar 02 18:18:12 192.168.1.11 jenkins[9453]: *************************************************************
Mar 02 18:18:12 192.168.1.11 jenkins[9453]: *************************************************************
Mar 02 18:18:12 192.168.1.11 jenkins[9453]: *************************************************************
Mar 02 18:18:30 192.168.1.11 jenkins[9453]: 2024-03-02 10:18:30.504+0000 [id=33]        INFO        jenkins.InitReactorRunner$1#onAttained: Completed initialization
Mar 02 18:18:30 192.168.1.11 jenkins[9453]: 2024-03-02 10:18:30.526+0000 [id=24]        INFO        hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
Mar 02 18:18:30 192.168.1.11 systemd[1]: Started Jenkins Continuous Integration Server.
Mar 02 18:18:31 192.168.1.11 jenkins[9453]: 2024-03-02 10:18:31.611+0000 [id=49]        INFO        h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
Mar 02 18:18:31 192.168.1.11 jenkins[9453]: 2024-03-02 10:18:31.613+0000 [id=49]        INFO        hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1

至此,Jenkins已经安装好,并启动。

初始化

打开浏览器,访问 http://localhost:8080

在这里插入图片描述

按照提示,访问 /var/lib/jenkins/secrets/initialAdminPassword 文件:

[ding@192 ~]$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
9cc784ffe4ad46e4bb2b8a1a4116839b

注:这个密码也是默认的 admin 用户的密码。

把文件内容复制到输入框,并点击“Continue”按钮。

在这里插入图片描述

对于新手,选择左边的默认的插件就行。点击后,开始安装:

在这里插入图片描述

大约需要几分钟时间,就安装好了,自动跳转到下一个页面:

在这里插入图片描述

填入用户名、密码、邮箱等信息,点击“Save and Continue”按钮,跳转到下一个页面:

在这里插入图片描述

默认的URL是 http://localhost:8080/ ,无需修改,直接点击“Save and Finish”按钮,进入下一个页面:

在这里插入图片描述

点击“Start using Jenkins”按钮,进入Jenkins主页面:

在这里插入图片描述

至此,Jenkins初始化完成,可以开始工作了。

Pipeline

参考 https://www.jenkins.io/doc/book/pipeline/getting-started

UI

在Jenkins主页面,点击左上角的“New Item”:

在这里插入图片描述

在接下来的页面中,填入名字,选择“Pipeline”,然后点击“OK”按钮:

在这里插入图片描述

在接下来的“Config”页面,到页面最下面:

在这里插入图片描述

可见,默认选择的是“Pipeline script”。在“Script”框里,填写pipeline代码。

如果不知道写什么好,可以在右边的下拉列表里,选择一个,比如“Hello World”:

在这里插入图片描述

生成的代码如下:

pipeline {agent anystages {stage('Hello') {steps {echo 'Hello World'}}

最后,点击“Save”按钮。至此,pipeline就创建好了。

接下来,点击左边的“Build Now”,运行 hello1 pipeline:

在这里插入图片描述

很快就可以看到,build运行成功了:

在这里插入图片描述

点击 #1 ,然后点击 “Console Output”,可以查看log:

在这里插入图片描述
可见,确实输出了 Hello World

SCM(Source Control Management)

前面的例子,代码是直接写在Jenkins里的,缺点是移植性和可维护性比较差。

更好的方法是把代码写在文本文件里,用源码控制工具来管理。该文件被称为 Jenkinsfile 。Jenkins用源码控制工具把 Jenkinsfile' pull下来,把它作为pipeline项目构建过程的一部分,然后来运行pipeline。

准备

首先要安装git。

然后在github创建一个项目 jenkinstest 。在项目根目录下,创建文件 Jenkinsfile 如下:

pipeline {agent any stages {stage('Stage 1') {steps {echo 'Hello world!' }}}
}

注:在其它位置创建 Jenkinsfile 也行,需在Jenkins里指定其路径。

在这里插入图片描述

pipeline

回到Jenkins主页面,点击左上角“New Item”,仍然选择“Pipeline”,拉到页面最下面,这次选择 Pipeline script from SCM

在这里插入图片描述
Repository URL 处,填写git repo的URL,本例为 https://github.com/dukeding/jenkinstest

Credentials 处,选择git的credential。如果还没有配置,则点击下方的 Add 按钮添加。

在这里插入图片描述

本例中,使用的是用户名密码的方式:

在这里插入图片描述
添加完成后,就可以选择它了:

在这里插入图片描述

接下来,在 Branch 处选择git branch,默认值是 */master ,本例中为 */main

Script Path 处选择 Jenkinsfile 的路径,默认值是 Jenkinsfile ,本例中文件名和路径都无需修改(即项目根目录下的 Jenkinsfile 文件)。

在这里插入图片描述

最后,点击“Save”按钮。

现在就可以运行pipeline了。点击左上角的 Build Now ,很快就能看到运行成功了:

在这里插入图片描述

点击 #1 ,然后点击 Console Output 查看log:

Started by user ding
Obtained Jenkinsfile from git https://github.com/dukeding/jenkinstest
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/hello2
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
using credential duke_ding_git
Cloning the remote Git repository
Cloning repository https://github.com/dukeding/jenkinstest> git init /var/lib/jenkins/workspace/hello2 # timeout=10
Fetching upstream changes from https://github.com/dukeding/jenkinstest> git --version # timeout=10> git --version # 'git version 2.39.3'
using GIT_ASKPASS to set credentials > git fetch --tags --force --progress -- https://github.com/dukeding/jenkinstest +refs/heads/*:refs/remotes/origin/* # timeout=10> git config remote.origin.url https://github.com/dukeding/jenkinstest # timeout=10> git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
Avoid second fetch> git rev-parse refs/remotes/origin/main^{commit} # timeout=10
Checking out Revision ff3347d08ac2eec7bed80862b80efe02bcf21b93 (refs/remotes/origin/main)> git config core.sparsecheckout # timeout=10> git checkout -f ff3347d08ac2eec7bed80862b80efe02bcf21b93 # timeout=10
Commit message: "Update Jenkinsfile"
First time build. Skipping changelog.
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Stage 1)
[Pipeline] echo
Hello world!
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

可见,确实输出了 Hello World

参考

  • https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos
  • https://www.jenkins.io/doc/book/pipeline/getting-started
  • https://www.jenkins.io/zh/doc/book/getting-started/ (中文文档)

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

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

相关文章

Elasticsearch搜索引擎

目录 初识elasticsearch 了解ES 什么是elasticsearch elasticsearch的发展 搜索引擎技术排名: 总结 倒排索引 正向索引和倒排索引 正向索引 倒排索引 总结 es的一些概念 文档 索引 概念对比 架构 总结 安装es,kibana 安装es 安装kiba…

中医舌苔笔记

舌诊时按照舌尖-舌中-舌根-舌侧的顺序进行观察。 先看舌体再看舌苔,30秒左右。 如果一次望舌判断不清,可令病人休息3~5分钟后,重新观察一次 舌诊脏腑部位分属图 舌体 胖嫩而边有齿痕为气虚、阳虚。 薄白而润为风寒; 薄白而燥…

顶顶通呼叫中心中间件-机器人话术如何实现在放音期间不接收按键信息

文章目录 前言联系我们实现方法 前言 场景:进入机器人话术时,在话术放音期间不接收用户的按键信息,等话术放音完成后才允许接收用户的按钮信息,然后根据用户的按钮信息执行相应的机器人话术流程。 联系我们 有意向了解呼叫中心中…

图解 TCP 拥塞控制

文章目录 什么是拥塞控制拥塞控制算法慢启动拥塞避免快速恢复 TCP拥塞控制状态机 什么是拥塞控制 拥塞控制是一种 确保网络中的数据包以可持续的速率传输 的机制,避免因为数据包太多而超过网络当前的承载能力,导致网络性能下降,甚至产生大量…

(四)关系模型之关系代数

4.1关系代数概述 基于集合,提供了一系列的关系代数操作:并、差、笛卡尔积(广义积)、 选择、投影和更名等基本操作以及交、 连接和关系除等扩展操作,是一种集合思维的操作语言。关系代数操作以一个或多个关系为输入,结果是一个新的…

单片机为什么需要时钟?2种时钟电路对比?

目录 一、晶体振荡器(Crystal Oscillator)的核心知识 二、单片机为什么需要时钟电路? 三、单片机的时钟电路方案 01、外部晶振方案 02、内部晶振方案 四、总结 单片机研发设计的项目中,它的最小电路系统包含 电源电路复位…

电源PCB设计:确保稳定高效的电源供应

作为电子设备的心脏,电源的设计与布局布线质量,将直接关系到整个系统的稳定性和效率,那么电子工程师该如何惊喜打造电源PCB,确保电源供应的稳定、高效安全? 1、电源PCB设计的核心要素①板层与铜厚选择:根据…

算法46:动态规划专练(力扣198: 打家劫舍 力扣740:删除并获取点数)

打家劫舍问题: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定…

Windows Server 2003 搭建邮件服务器实现自建邮箱域名及账户并连接外网

前言 2008 之后的版本微软删除了 POP 服务导致只能安装 SMTP 服务,所以这里只写了关于 2003 版本的教程 点击左下角开始➡管理工具➡管理您的服务器,点击添加或删除角色 点击下一步 选择自定义配置,点击下一步 选择邮件服务器&#xff0c…

vue3中压缩图片的大小

效果 上传一张图片,看看文件的大小。我们会发现小了很多 思路 图片太大也是因为宽高太大,进行宽高的缩放就可以了 实现过程 const onUpload async ({ file }) > {console.log(file);if (file.size / 1024 / 1024 > 100) {message.error(大小不…

uniapp模仿下拉框实现文字联想功能 - uniapp输入联想(官方样式-附源码)

一、效果 废话不多说&#xff0c;上效果图&#xff1a; 在下方的&#xff1a; 在上方的&#xff1a; 二、源码 一般是个输入框&#xff0c;输入关键词&#xff0c;下拉一个搜索列表。 ElementUI有提供<el-autocomplete>&#xff0c;但uniapp官网没提供这么细&#x…

备考2024年北京高考数学:20114~2023十年选择题练习和解析

距离2024年高考还有三个月的时间&#xff0c;如何用三个月的时间再提高北京数学高考的成绩&#xff1f;吃透历年真题以及背后的知识点是行之有效的方法 之一。 今天我们来看一下2014-2023年的北京市高考数学的选择题&#xff0c;从过去十年&#xff08;2014-2023&#xff09;的…

深入浅出解析SSL:保障网络安全的加密技术

在数字信息时代&#xff0c;网络安全已成为人们关注的重点。为了在网络传输过程中保护数据的完整性和机密性&#xff0c;我们需要一种强大的安全协议——SSL&#xff08;安全套接层&#xff09;。今天德迅云安全就带大家来简单了解下SSL是什么&#xff0c;它的工作原理以及为何…

SpringCloudGateway理论与实践

文章目录 网关介绍为什么需要网关Gateway 使用gateway pom依赖yml 配置重启测试总结 断言过滤器工厂路由过滤器的种类请求头过滤器默认过滤器总结 网关介绍 Spring Cloud Gateway 是一个基于Spring Framework 5&#xff0c;由Spring Cloud团队开发的全新的API网关服务。它旨在…

qtvs2022工程cmakelist.txt添加QCharts模块

find_package(QT NAMES Qt5 COMPONENTS Core Gui Widgets OpenGL Concurrent Charts Sql Network REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets OpenGL Charts Concurrent Sql Network REQUIRED)这里find_package只是设置搜索路径&#xff0c;为…

ES入门十:关系模型的实现:嵌套类型和父子文档

现实中&#xff0c;关系模型是到处存在的&#xff0c;例如书本与作者的关系。但是在ES中想要处理这个事情并不简单 在ES中保存关系型模型数据的方式主要有以下几种&#xff1a; nested&#xff1a;在这种方式中&#xff0c;会通过一对多的放系保存在同一个文档中join&#xf…

Centos 9 安装 k8s

为了尽可能契合生产环境的部署情况&#xff0c;这里用kubeadm安装集群&#xff0c;同时方便跟随笔记一步步实践的过程&#xff0c;也更加了解k8s的一些特性和基础知识。 先决条件 这里将通过虚拟机安装3台centos stream 9服务器&#xff0c;并组成kubeneters集群&#xff08;…

Vue基础篇

Vue Vue是一套用于构建用户界面的渐进式JavaScript框架 什么是渐进式? Vue可以自底向上逐层地应用; 当构建简单应用时, 只需一个轻量小巧的核心库; 当构建复杂应用时, 可以引入各式各样的Vue插件 Vue具有以下特点: 采用组件化模式, 提高代码复用率且让代码更好维护 声明式编…

Vue+SpringBoot打造考研专业课程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高校教师管理模块2.4 考研专业模块2.5 考研政策模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 考研高校表3.2.2 高校教师表3.2.3 考研专业表3.2.4 考研政策表 四、系统展示五、核…

10 个 Java Stream 顶级技巧,大量简化代码

Java Stream API对于 Java 开发人员来说就像一把瑞士军刀 — 它用途广泛、结构紧凑,并且可以轻松处理各种任务。 它为开发人员提供了一种函数式和声明式的方式来表达复杂的数据转换和操作,使代码更加简洁和富有表现力。 但能力越大,责任越大,有效地使用Stream API需要对最…