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.hqwc.cn/news/505855.html

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

相关文章

Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)

安装k8有多种方式如: minikube kubeadm 二进制安装 命令行工具 我这里就使用kubeadm进行安装 环境 3台centos7 master ip :192.168.113.120 2G运存 2内核 node1 ip :192.168.113.121 2G运存 2内核 node2 ip :192.168.1…

ctf_show笔记篇(web入门---爆破)

爆破 21:直接bp抓包跑字典,需base64加密 22:可用工具跑也可用浏览器找还可以用网上做好的域名查找去找 23:此题需跑脚本已经附上自写脚本 最后跑出来六个答案一个一个尝试得到答案为3j import hashlibm "0123456789qwert…

适配器模式在微服务的巧妙应用

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间可以一起工作。适配器模式通常用于将一个类的接口转换成客户端期望的另一种接口,从而使原本因接口不兼容而不能一起工作的类可以一起工作。 适配器模式的…

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…

【python】1.python3.12.2和pycharm社区版的安装指南

欢迎来CILMY23的博客喔,本篇为【python】1.python3.12.2和pycharm社区版的安装指南,感谢观看,支持的可以给个一键三连,点赞关注收藏。 目录 一、python3.12.2的下载与安装 1.1下载 1.2安装 二、pycharm的安装 2.1下载安装 2…

【C语言】文件及文件操作详解(fseek,ftell,rwind)

目录 1. 为什么使用文件 2. 什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 3. 二进制文件和文本文件 4. 文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 文件的打开和关闭 5. 文件的顺序读写 6.文件的随机读写 6.1 fseek 6.2 ft…

PySide6+VSCode Python可视化环境搭建

#记住在cmd中运行,不要在vscode里运行,否则env会装到工程目录下 python -m venv env #env\Scripts\activate.bat pip install pyside6 下载本期源码 vscode装一个PYQT Integration插件,设置好两个路径(下面有个脚本用于获取路径&…

物联网与智慧城市:融合创新,塑造未来城市生活新图景

一、引言 在科技飞速发展的今天,物联网与智慧城市的融合创新已成为推动城市发展的重要力量。物联网技术通过连接万物,实现信息的智能感知、传输和处理,为智慧城市的构建提供了无限可能。智慧城市则运用物联网等先进技术,实现城市…

docker三剑客compose+machine+swarm小结

背景 在容器领域,不少公司会使用docker三剑客composemachineswarm进行容器编排和部署,本文就简单记录下这几个工具的用法 三剑客composemachineswarm compose compose主要是用于容器编排,我们部署容器时,容器之间会有依赖&…

Leetcode630. 课程表 III

Every day a Leetcode 题目来源:630. 课程表 III 解法1:反悔贪心 经验告诉我们,在准备期末考试的时候,先考的课程先准备。同理,lastDay 越早的课程,应当越早上完。但是,有的课程 duration 比…

Vue开发实例(四)Element-UI部分组件使用方法

Element-UI的使用 一、Icon图标的使用1、用 i 标签使用图标 二、用 el-button 使用图标1、使用type定义样式2、使用plain定义样式3、使用round定义样式4、使用circle定义样式5、带图标和文字的按钮6、按钮禁用7、文字按钮8、按钮组9、加载中 三、Link 文字链接1、基础用法2、禁…

Stable Diffusion WebUI API http://127.0.0.1:7860/docs空白

在尝试调用Stable Diffusion WebUI API的时候,打开http://127.0.0.1:7860/docs遇到了以下页面 网络诊断是这样的原因: 修bug,改来改去遇到了以下两种页面: 此时http://127.0.0.1:7860可以如下正常显示: 查资料的时候找…