Jenkins笔记(一)

news2024/11/16 21:29:54

个人学习笔记(整理不易,有帮助点个赞)

笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客

目录

一:简单了解

二:什么是DevOps

三:安装Jenkins

四:pipeline

1)简单了解

2)Jenkinsfile

3)pipeline语法选择

1:脚本式(Scripted)语法

2:声明式(Declar-ative)语法(建议使用这种)

4)创建pipeline项目

5)从版本控制库拉取pipeline

6)使用Maven构建Java应用


一:简单了解

Jenkins2.0版本,开始支持pipeline as code

Jenkins是一款使用Java语言开发的开源的自动化服务器。我们通过界面或Jenkinsfile告诉它执行什么任务,何时执行。理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付

二:什么是DevOps

参考:百度安全验证

 简单理解就是:

1)定义:DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合,通过自动化软件交付和架构变更的流程,使得构建、测试、发布软件能够更加快捷、频繁和可靠

2)软件工程方法论从瀑布到敏捷,到目前的DevOps,都不是凭空演进出来的。敏捷的目的是为了打破产品和开发团队之间的部门墙,但是市场变化越来越快,充满易变性、不确定性、复杂性、模糊性。我们需要更快的交付和反馈,所以只打破产品和开发部门部门墙还不够,现在现在需要将开发和运维运营也打通

目的:DevOps打破原有的组织考核壁垒,围绕一个统一的业务价值目标及业务交付范围加强沟通,通过频繁、快速地迭代交付和反馈,达到加快交付速度和提高交付质量的目的

3)方法:用持续交付的流水线来取代冗长的开发运维流程,就会用到jenkins了

4)DevOps的生命周期:

5)实现

DevOps落地,研发交付的每个过程都离不开工具的支撑。传统的方式,是自己搭建零散的弱整合工具系统,比如我们用Gitlab来管理代码,根据企业的实际情况寻找合适的分支管理方法;我们用Jenkins来做持续集成;使用selenium来做自动化测试;使用ansible来自动化部署;使用chef或者puppet来管理基础环境等等。这种情况的问题一是系统完全需要自己维护,成本高,不稳定;问题二是子系统之间存在隐性墙,缺少数据共享/权限共享/系统交互等功能。目前大型金融以及互联网企业普遍采用强整合的统一DevOps平台

三:安装Jenkins

参考:Windows

下载地址:Jenkins download and deployment 

配置策略组

这里的对象名称是我电脑的账户名,输入后,点击检查名称,他会给你生成一串,然后保存应用即可

安装下载的软件,在这里输入,我先安装,此前没配置策略组,配置后这里没有自动生成,直接就返回上一步就好了

端口我用的8081,正常用8080就行

选择需要与Jenkins一起安装的其他服务,然后单击“下一步”

安装完成后,查看服务已经开启了

浏览器输入http://localhost:8081/,登录即可

首次访问新的 Jenkins 实例时,系统会要求您使用自动生成的密码解锁它

也可以从安装路径找密码

四:pipeline

1)简单了解

部署流水线(Deployment pipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式

Jenkins 1.x只能通过界面手动操作来“描述”部署流水线

Jenkins 2.x支持pipeline as code,可以通过“代码”来描述部署流水线

2)Jenkinsfile

Jenkinsfile是一个文本文件,是部署流水线概念在Jenkins中的表现形式。像Dockerfile之于Docker。所有部署流水线的逻辑都写在Jenkinsfile中

如果没有pipeline插件,就去插件管理安装一个

我这里已经安装了

3)pipeline语法选择

Groovy语言被选择作为基础来实现pipeline

1:脚本式(Scripted)语法

node为根节点的是脚本式语法

2:声明式(Declar-ative)语法(建议使用这种)

pipeline插件从2.5版本开始,才同时支持两种格式的语法

只有安装了pipeline插件,Jenkins才支持pipeline as code。这个“code”被写在一个被命名为Jenkinsfile的文本文件中。在同一个代码项目下可以按需创建多个不同名的Jenkinsfile

4)创建pipeline项目

随便写一个pipeline

从Jenkins界面填入pipeline,在验证时可以这么做,但是不推荐,因为不能做到pipeline的版本化

5)从版本控制库拉取pipeline

安装Git插件,然后使用SSH的clone方式拉取代码

将Git私钥放到Jenkins上,这样Jenkins才有权限从Git仓库拉取代码

注意:gitlab这里添加的是公钥pub那个(github也是差不多的)

在jenkins配置私钥,打开凭证管理

用户名和密码是gitlab代码库登录的账号密码

注意,这里的秘钥填的是私钥

随便创建一个项目,把gitlab的项目地址在这里设置一下,如图下:

运行结果(在执行如果出现报错,不确定是不是地址有问题,可以在git先执行一次)

最初我拿github去操作的时候,报错

ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.

直接把master改为main就好了

上面已经知道Jenkins从Git仓库怎么拉取代码了,接下来是在拉代码的时候,执行pipeline

项目新建一个Jenkinsfile文件,然后填上以下内容,推送去仓库

流水线配置一下仓库地址,凭证,文件名

这里吃个亏,我开始创建的是带txt后缀,但是这里没加,导致找不到文件

“Script Path”就是pipeline的文件名,默认是Jenkinsfile

6)使用Maven构建Java应用

参考:idea创建一个简单的maven项目-CSDN博客

使用Maven构建Java应用的例子,Jenkins默认支持Maven

在Jenkins上安装JDK和Maven,可以本地也可以自动,我这里选择的是本地

pipeline {
    agent any

    //执行到tools时,就会根据Maven的设置自动下载指定版本的Maven,并安装
    //tools是pipeline中的一个指令,用于自动安装工具,同时将其路径放到PATH变量中
    tools {
        maven 'mvn-3.9.6'
    }
    stages {
        stage('Build') {
            steps {
                sh "mvn clean package spring-boot:repackage"    //暂时不理解这个有什么作用
                sh "printenv"    //将环境变量打印到console中
            }
        }
    }
}

推送仓库,构建一个pipeline,执行后会安装maven(这里的例子只是说明通过构建去安装maven,跟我本地配置没啥关系)

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

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

相关文章

uniapp实现-审批流程效果

一、实现思路 需要要定义一个变量, 记录当前激活的步骤。通过数组的长度来循环数据,如果有就采用3元一次进行选择。 把循环里面的变量【name、status、time】, 全部替换为取出的那一项的值。然后继续下一次循环。 虚拟的数据都是请求来的, 组装为好渲染的格式。 二…

Diffusion Models/Score-based Generative Models背后的深度学习原理(5):伪似然和蒙特卡洛近似配分函数

Diffusion Models专栏文章汇总:入门与实战 前言:有不少订阅我专栏的读者问diffusion models很深奥读不懂,需要先看一些什么知识打下基础?虽然diffusion models是一个非常前沿的工作,但肯定不是凭空产生的,背…

FaceBook获取广告数据

1、访问 广告管理工具 确认自己登陆的账号下面能看到户。 ​ 2、使用 图谱Api探索工具 生成用户短期口令 ​ 3、get请求(或者浏览器直接打开)访问: https://graph.facebook.com/v19.0/me?fieldsid,name, email&access_token{上一步生成的口令} ​ 4、短期…

ChatGPT4.0 的优势、升级 4.0 为什么这么难以及如何进行升级?

前言 “ChatGPT4.0一个月多少人民币?” ”chatgpt4账号“ ”chatgpt4 价格“ “chatgpt4多少钱” 最近发现很多小伙伴很想知道关于ChatGPT4.0的事情,于是写了这篇帖子,帮大家分析一下。 一、ChatGPT4.0 的优势 (PS:…

Tiktok矩阵系统搭建的逻辑和源代码!

很多和我一样从事外贸工具开发的朋友都清楚,TikTok矩阵系统不仅确保了平台的高效运行,还为用户提供了个性化的内容推荐,从而大大提升了用户黏性,因此很多人都乐意去开发类似的工具,下面我们就来说说Tiktok矩阵系统搭建…

常用SQL查询方法与实例

目录 SELECT查询 INSERT查询 UPDATE查询 DELETE查询 JOIN查询 GROUP BY查询 HAVING查询 窗口函数 公共表表达式(CTEs) 递归查询 透视表 分析函数 解透视 条件聚合 日期函数 合并语句 情况语句 常用SQL查询方法有以下几种: S…

【Android】View 的滑动

View 的滑动是 Android 实现自定义控件的基础,同时在开发中我们也难免会遇到 View 的滑动处理。其实不管是哪种滑动方式,其基本思想都是类似的:当点击事件传到 View 时,系统记下触摸点的坐标,手指移动时系统记下移动后…

全志XR806 FreeRTOS快速开发入门

RTOS 快速开发入门 XR806 是一颗高集成度无线应用MCU,其集成了ARMv8-M 内核、IEEE 802.11b/g/n Wi-Fi 子系统、BLE 5.0子系统、电源管理系统、高级别的安全系统以及丰富的外设接口,具有优秀的射频性能、稳定性、可靠性和超低功耗。 芯之联软件开发平台…

IIS发布PHP网站字体404解决办法

最近在使用 IIS 发布 PHP 网站时,我遇到了一个前端问题,即字体库文件 404 错误。这个问题的根本原因是 IIS 未能正确识别字体文件类型,导致浏览器在加载页面时无法正确获取所需字体资源,进而触发了404错误。这样的问题会导致网站页…

量化投资实战(一)之K线图策略

点赞、关注再看,养成良好习惯 Life is short, U need Python 量化投资实战系列,不断更新中 1. K线图简介 K 线图(Candlestick Charts)又称为“蜡烛图”、“阴线图”等。股市及期货市场中的 K 线图的画法包含四个数据,…

ETH网络中的区块链

回顾BTC网络的区块链系统 什么是区块链?BTC网络是如何运行的?BTC交易模式 - UXTO ETH网络中的区块链 ETH网络的基石依旧是 区块链。上面 什么是区块链? 的文章依旧适用。 相比BTC网络,ETH网络的账户系统就相对复杂,所…

FPGA之带有进位逻辑的加法运算

module ADDER( input [5:0]A, input [5:0]B,output[6:0]Q ); assign Q AB; endmodule 综合结果如下图所示: 使用了6个Lut,,6个LUT分布…

【通信基础知识】完整通信系统的流程图及各模块功能详解

2024.2.29 抱歉最近在写毕设大论文,因此没有太多时间更新。然而,在写论文的过程中,发现自己对通信系统的了解还不够全明白,因此差了一些硕博论文总结了一个完整的通信系统流程图。若有不对的地方请多多指正//部分内容有参考ChatGP…

Python+neo4j构建豆瓣电影知识图谱

文章目录 数据来源数据整理导入节点和关系导入使用Subgraph批量导入节点和关系 多标签实体和实体去重 数据来源 http://www.openkg.cn/dataset/douban-movie-kg 该网址拥有丰富的中文知识图谱数据集,OpenKG(Open Knowledge Graph),可供研究人员使用研究…

2019年下半年教师资格证考试《高中信息技术》题

2.在如图1所示的图文混排Word文档中,文字环绕方式使用了( D)。 图1 A嵌入型 B上下环绕型 C衬于文字下方 D编辑环绕顶点 6.在Flash中绘制类似“雨”的形状,一般首先使用“椭圆工具”绘制出一个圆形(如图4中a图&…

Win11系统实现adb命令向安卓子系统安装APP

Win11系统实现通过adb命令向安卓子系统安装已下载好的apk包。 要实现以上目标,我们需要用到一个Android SDK 的组件Android SDK Platform-Tools !这个组件呢其实是被包含在 Android Studio中的,如果你对安卓开发有所了解对此应该不会陌生&…

利用DrissionPage库写一个简单的哔哩哔哩自动评论引流脚本

以前利用selenium写过哔哩哔哩简单的脚本,后来数据丢失,痛苦万分,今天看到这个库了解一下便写了这个脚本。 切记做好数据备份 文章目录 DrissionPage简介:代码部分 DrissionPage和selenium很像,但是更简单,…

展厅设计的理念是什么

1、立足当地文化 升华本地精神 ,因地制宜,深入挖掘本土文化特色,撷取其精华,灵活运用、巧妙融入,做到掌控宏观全局。 重点突出,努力打造本土拳头品牌,挖掘其内涵,拓展延伸、着重展示…

cannot import name ‘Iterator‘ from ‘torchtext.data‘

在运行Transformer工程的时候,执行如下语句时出现题目中的报错。 from torchtext.data import Iterator 这个问题解决起来比较曲折,记录下来以备后续查阅。 原来的环境安装的是最新的pytorch,2.x版本,而且该环境在另一个大型Tr…

36102系列微波测量探针

01 36102系列微波测量探针 产品综述: 微波测量探针产品36102系列,无缝隙覆盖DC~110GHz,触点防堆金处理,压痕轻,性能可靠,产品统一采用标准同轴安装接口,触点类型、触点尺寸可选,可…