Jenkins 设置和红心 (dockerfile, Jenkins 文件, 带有窗口节点)
来源:http://www.tudoupe.com时间:2021-12-03
目录
前言
那Jenkins到底有什么用?
首先,什么是詹金斯?
CI&CD
有两个有什么用 Jenkins?
二. 詹金斯建筑
1. 詹金斯安装
2. 基本配置
①系统配置
②全局工具配置
三、詹金斯人的任务
1、maven项目
①General
②源码管理
③构建触发器
④构建环境
⑤Pre Steps
⑥Build
⑦Post Steps
⑧构建设置
⑨构建后操作
2、流水线项目
①General
②构建触发器
③高级项目选项
④流水线
四. 詹金斯节点
1、配置从节点
①节点配置里
Jenkins与节点2相连。
2. 可以利用节点配置马文项目。
1 从节点设置修饰项
Maven 工程中用于配置某些坑的两节点
五、常见的问题
1. 詹金斯和北京的时间不一致
前言
毕竟,在自己理解和创建詹金斯过程中遇到的许多坑坑现已上网,包括没有说明的结点和筑洞坑,网络档案不够全面,分享了学到的一些经验教训,而且参考中存在不一致之处。Jenkins
Jenkins 是一个自由开放源码服务器, 将任务自动化 。
https://www.jenkins.io/zh/
那Jenkins到底有什么用?
首先,什么是詹金斯?
最开始学习时,看了很多相关视频,中心词无非就这几个:java编写、开源、CI&CD。引用官网原介绍:
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins支持几种操作方式, 包括一个系统包, Docker 和一个单独的 Java 程序 。
CI&CD
这里只解释下CI&CD,CI既是持续集成,以往我们集成的场景是多位开发人员负责不同功能模块,在合并日就导致工作繁琐耗时,当两个甚至多个开发人员改动同一个模块时,还需要对其手动合并。CI则可以帮助开发人员更加频繁的将代码合并到共享分支上,一旦开发人员对应用做出了更改合并,系统会自动构建并运行自动化测试来验证这些更改,如果发现冲突,CI就会自动修复这些错误。
CD有两个含义:一是连续交付。在连续整合光学中心完成后,连续交付可自动发布经过验证的代码。 连续交付的目标是建立一个可以随时部署到生产环境的代码库;二是连续部署。 连续整合和连续交付后将持续部署。 连续交付将自动向代码库发送稳定版本,允许将应用程序自动张贴到生产环境。 换句话说,开发者将代码写入并发布给公共部门,在自动测试后,它将在几分钟后在生产环境中生效(当然,生产环境或测试环境是可以控制的)。
有两个有什么用 Jenkins?
Jenkins有什么意义?换句话说,这是Jenkins的长处和缺点, 我会解释我个人理解的几点。
Jenkins有以下优点:
常规开发部署方法涉及若干服务器来进行同样的活动,对开发、运输和保养人员极为敌对;开发人员部署Jenkins只需要代码的作者,不需要他们自己的源代码汇编、包装等,只需将代码分支直接提交Git仓库;
虽然常规发展部署有时需要太长的时间才能重新启动项目,但客户经验差,甚至造成错误的过程,部署Jenkins,该Jenkins通过点击按钮或提供URL进行自动连接、分发、部署和测试;还有部署记录和从大楼上传信息,以协助倒回,等等。
Jenkins的缺点包括:
内部设置更为复杂,网络化程度也较低。 詹金斯自建项目虽然简单易用,但是一个复杂的内部项目配置,其技术门槛很高,如Linux、docker、shell、shsh、捆绑批量加工。 此外,它是一种相对较新的技术,互联网上有许多缺陷,但并非详尽无遗。
不管怎么说,Jenkins, 不管怎么说, 我们的进化手从被固定的和不可避免的物品困扰中解放出来, 比如包装,部署, 并且不要忘记那些杀人或停止的命令, 这些命令只能通过点击或其他触发建筑项目 才能自动发出。
二. 詹金斯建筑
Jenkins有多种方法来建造它, 并且有很多方法可以把它放到网上: Docker, Ubuntu, Centos, Windows.. 它没有多大的区别(除了 docker 下载, 以后会有很多洞), 最终都会在Jenkins 平台上运作。 我将利用 Docker 的安装在这里通知你, Centos 和 Windows 将会有另外一种机会来建造它, 并且有很多方法可以把它下载到网上: Docker, Ubuntu, Centos, Windows..
在Linux服务器上,我建造了一个 docker服务器和一个Jenkins容器。
1. 詹金斯安装
仅此语句中有许多坑, 第一个坑 : - u root 。 Directly docker 运行 Jenkins 会遇到无限的多重任务问题, 例如: 项目已经全部安装, 但最终你必须通过 Jenkins 的 Maven 来包装和运行项目, 但是当你到达 Jenkins 时, 你发现你没有访问权限, 您会使用甲板上安装的 Jenkins 设置的 Jenkins 自动设置 Jenkins 服务器的密码, 您不知道默认代码, 您会锁定无线 。 第二大坑: - v 已安装 。 如果您从 Jenkins 到 docker 服务器, 然后到 Linux 服务器去处理文件, 将很难操作 Jenkins 中的项目 。
Accessible url 允许您访问 Jenkins 服务器的 ip+ 端口, 第一个端口是 8080, 并且可以配置为您想要的端口, 例如 : 8080 。
初始化时, 将有一个登录到 Jenkins 服务器的密钥, 输入足以填入用户用户名和密码的设置, 即 Jenkins 账号, 稍后日期将使用 Jenkins 账号 。 (注意: 与通常下载的 Jenkins 账号不同, 在初始启动时, Jenkins 将允许您下载一些基本插件, 码头可默认直接下载插件, 通常下载的 Jenkins 将不下载, 通常下载的 Jenkins 将不会下载, 外部网络上的默认下载一般不正确, 需要在内部重新配置, 需要选择家用镜子 。 这太基本了, 无法打印 )
2、基础配置
①系统配置
在此情况下没有配置。 如果需要 Ssh 连接到另一个服务器, 请在系统配置中配置与 Ssh 有关的信息, 或者, 如果没有 Ssh 连接配置, 下载与 Ssh 相关的插件 。
设置 ssh 连接。 目标是连接到账户代码或密钥公用密钥。 此 ssh 连接可以通过 ssh 切换到 ssh 服务器, 甚至可以执行执行命令操作 。 没有演示, 因为此项努力毫无意义 。
②全局工具配置
Jenkins带来了自己的jdk, 因为它是在java开发的, JAVA_HOME是固定的, 可以在状态信息-系统信息中观察。
配置 maven : 如果您不想在 Jenkins 中下载 Maven, 您可以检查自动安装 。 如果您想要安装您下载的 Maven, 您必须首先通过 docker 将其传送到 Jenkins 服务器, 以便解构和设置 。 不需要直接安装它 。

同样,如果没有情况,从插件管理处下载插件。
3个插件管理 : 国家镜像源 URL 可能被更改, 插件可以更快地下载 。
詹金斯改变了中国青华大学的镜子
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在高级升级站点中, 请用上面的上传插件替换 URL 。 如果选中的插件没有您所需的插件, 您可以去Jenkins, 下载插件, 下载本地文件, 并选择要上传到网站的文件 。 建议需要的插件 : Hannigic Jenkins 插件插件

下载插件后, 您必须重新启动 Jenkins 才能正常工作 。
④凭据:



要添加凭单,请单击红色框。凭单的作用是管理Jenkins与其他当事方有联系的全球账户。例如,记录与git有关的账户、与shs相连的账户等等。
我快做完了 我准备开始扮演詹金斯了
三、詹金斯人的任务
点击“ 新任务” 进入下一个屏幕, 屏幕将关注两个任务部署: maven 工程和流线工程 。

1、maven项目
Maven项目建议我们从一个相当简单的任务开始。
前九个模块可用于指定配置、下一个用于分析的模块以及某些冷门功能,可通过点击右手问答标记访问。
①General

描述可能包括或可能不包括的建筑工程;
(a) GitHub项目:项目 URL和显示名称可以定义,但不填写;
这一结构的锁定资源:这一结构需要使用未填充的锁定资源。
Trottle 建造: 通过限制玩家在一个特定时间段同时匹配而不填充的时间长度来构建 ;
废弃历史建筑:为建筑历史制定保护政策,根据个人口味填写,空白;
跟踪施工天数:根据天数储存建筑记录。
维护所建结构的最大数目:所建记录的最大数目
发送包裹的天数: 罐子节省的天数,我们发送的作战袋
数量最多的一揽子保留措施:为减少建筑数量,发放了无数罐子和作战袋。

参数构建过程:动态配置参数,然后可以在项目建设之前填充,例如,适当的分支可以在项目建设之前填充,例如,这里我选择了名为 " gitBatch " 的 " 字符参数 ",称为 " gitBatch ",默认值 " dev ",然后我们经过整个过程,在不填充该参数的情况下展示施工是如何运作的。
封闭式建筑:项目尚未完成,无法完成;
必要时合并:各种项目工程可同时进行,但不得填充;
②源码管理

Git: 您可以将 Github、 Gitee 或 Gitlab 的仓库地址放置在代码绘制处 。
仓库 URL: Git 仓库, 需要填充 ;
证书:证书是连接到 Git 仓库的账户密码,如果没有线索,则显示连接成功,必须填写。
要构建的分支 : 指定要发布哪些分支, 如果上面提到的 gitBatch 等动态设置被 */ $gitBatch 所取代, 则必须包含哪些分支 。
源库浏览器的默认默认值是自动的, 必须填入 ;
③构建触发器
触发器和项目都是通过点击启动项目而创建的。
每次建立SNAPSHOT依赖关系时,都会建立SNAPSHOT依赖关系:当SNAPSHOT的附属项目建成时,Jenkins将为此项目分析POM,并检查是否也在此建立任何快照依赖关系。 如果如此,Jenkins将建立累积依赖关系,这样,当建设依靠操作并产生一个新的SNAPSHOT罐子时,Jenkins将管理项目的建设。
启动远程构建( 例如, 使用脚本 ) : 选中后随机键可通过 URL 远程生成的标识代号 :JENKINS_URL/ job/ maven- test/ building? Token= Token_ NAME。 可能无法完成 ;
额外的施工触发因素:项目是在建筑后按名称建造的,而施工阶段,如前一项目的成功,可以选择作为触发因素。
时间建设:可以定期建造,例如,不按日、每周或每月填空;
计时语法: 从左到右的时间字符串: 一周的天数和月数; * = H, 可能是任何合理的数量 。
例如:*****
初始 * 表示 0-59 分钟,如果未指定其他值,则表示每个特定分钟的构造为 5 **,这意味着每个小时的第五分钟构造为一次。
* 代表时数,值介于0至23之间,如果不指定其他值,则意味着每个小时的每分钟都是建造的* 5* *,这意味着每个小时的每分钟都是在每天5时一个小时之内建造的。
第三个* 指定月份的第一天值为1-31,如果没有指定其他值,则意味着每月的每一天每分钟创建一次* * 5 **,表示每个月5日每分钟0时开始施工。
第四个* 表示数值为1至12的月份,如果没有提供其他数值,则该月份每年每分钟建造一次** ** 5 * 表示该月份每年5月每分钟建造一次,每年5月的第一天下午0时* 表示数值为1至12的月份,如果没有提供其他数值,则该月份每年每分钟建造一次** * 5 * 表示该月份每年5月每分钟建造一次,每年第一天的下午0时。
* 表示一周的天数,1至7天,其中0至7天为星期日和7天为星期日,如果没有具体说明其他数值,则每几分钟生成一周的一天。
5 意味着每周下午5点开始每分钟开始施工
构建实例:
每天凌晨2: 00,运行H2。
H/5 * * * 每5分钟完成5分钟
HH/2每两小时建成一次。
它在中午每天建造一次。
H 12 * * 或 0 12 * * (此处0个也由H替代)
一天一次,晚上8点,建造它。
H 18 * * *
每15分钟构建一次
* /5 * * * 或H/15 * *
* * * * * * * * * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * * 每分钟建造 * 每分钟建造 * 每分钟
SCM 查询: 是在指定时间扫描本地代码仓库的代码, 并在代码更改时启动项目创建。 此时间扫描与上面的语法兼容 。
④构建环境
在建设前删除工作空间: 在建设开始前删除工作空间, 不填充工作空间 。
使用安全的文本或文件:提供访问各种文件的机会,并在罐壳生成过程中使用这些文件,但可能填充,也可能填充,也可能不填充;
提供配置文件,允许在本地工作空间使用全球配置,不使用 havupg 以填充空白;
在构建开始之前通过 SSH 发送文件或执行命令 : 在构建开始之前通过 SSH 传输文件或执行命令 ;
建设完成后通过 SSH 发送文件或执行命令 : 在建设完成后向 SSH 发送文件或执行命令, 如果建设前步骤失败, 建设后步骤将不会运行也不会完成 。
如果建筑停工,中止它:如果建筑被卡住,则中止。
向控制台输出添加时间戳 : 在控制台输出中包含时间戳 。
使用 ssh 在远程主机用户中运行 shell 脚本: 在远程主机中执行 shell 脚本, 在全球配置页面中声明 SSH, 并留空 ;
检查用于出版库状构建扫描的构建日志: 查看已公布的无法填充的库状构建日志 ;
⑤Pre Steps
筹备步骤:即在建造项目之前,必须进行一般没有必要的作业,但后一个视窗节点在建造项目时非常有用,因为项目将不予填补。

⑥Build
当我们到达时,我们会做马夫纳做的同样的事情: 一个干净的装置。
Maven 版本 : 如果您在您的全局工具设置中配置了许多maven, 您将选择要构建哪个maven 。
如果工作空间位于第一个模块根目录之外, 带有顶级 pom. xml, 您必须在详细路径. xml 文件中定义 pom 。 常规默认 Pom. xml, 已填满 ;
Goals and options:目标和备选方法,其中概述了有待实现的目标,本节还可能接受任何额外的 Maven 命令行参数, 比如我写的 : “ 清除安装 - Dmaven ” 。 我不确定您在说什么, 测试 。 “ skip= true ” 。 清楚安装是执行的目的 。 - Dmaven. 我不确定您在说什么, Test.skip= true 是 Maven 的另一个命令, 这意味着它不会运行测试案例, 也不会编译测试示例, 因为如果 Maven 在建立软件包时会做 J Unit 测试示例, 履行 J Unit 测试示例, 跳过测试添加面部命令 。 清楚安装是执行的目的 。 - Dmaven. 我不确定您在谈论什么, Test. skip= true 是 Maven 的另一个命令, 这意味着它不会运行测试案例, 也不会编译测试示例, 因为如果 Maven 在编译一个软件包时会做 J Un 测试示例, maven 执行 J Un 测试示例, 并跳过测试 添加面部命令 。 (在“ DskiptestTest ” 和“ decre” ex decert sucre decre decrection case.

⑦Post Steps
释放步骤:根据系统对相关集结阶段的决定,目前通常执行运行Jar袋的命令。
代表直接翻译成中文的前三个方框是:只有在施工成功时才运行,只有在施工成功或不稳定时才运行,无论施工结果如何运行。
如果您在 Linux 上执行它, 然后选择执行 shell, 然后写入匹配的 shell 脚本, 或者, 在 Windows 的情况下, “ 执行窗口批量顺序 ”, 这要求对 shell 脚本或批量顺序有某种基本的理解( 先如何创建 shell 脚本, 然后再如何写入粘结节点 ) 。

释放阶段背后的理念是放下先前执行的项目杀死,删除旧的项目,将默认的 jar 软件包 cp 置于 docker 目录下, 然后到挂载的目录去运行该 jar 软件包, 备份旧的东西 。
每个句子都经过检查,看看说明是否意味着挂载目录有项目目录,以及是否创建了该目录。
cd 到挂载目录的项目目录
P. S. 查找罐子文件并杀死它的程序
Jenkins' maven 软件包应该使用 bag mv 移到当前工程目录 。
在工程目录中执行 jar 软件包以创建日志文件 。
⑧构建设置
如果需要邮件通知, 请点击此框将信件发送到已注册的邮箱账户 。
⑨构建后操作
构建一个成功的操作。 如果需要 100 度, 它实际上无法运行 。

因此,整个Maven项目已经完成,第一次运作将缓慢。

2、流水线项目
使用Jenkinsfile和Dockerfile来管理整个项目的流动是目前项目最显著的特点。

流中只展示了四个步骤,表明许多行动被委托给Jenkinsfile和Dockerfile。
①General
此选项设置信息, 如 URLs 、 取代代码库的构建分支, 然后动态配置脚本中的项目 。 关于配置的更多细节, 请参见 Maven 项目创建 。
②构建触发器
配置细节可在马文项目施工中找到,该工程与马文项目施工一致,可能或可能未填满;
③高级项目选项
显示名称 : 在 Jenkins Web GUI 中, 项目的可选显示名称, 如果不填写的话, 将会显示默认值, 也可以留空 。
④流水线
管道脚本 要么直接在页面上写入脚本命令, 要么选择以下脚本从工程中发现 Jenkins 文件, 允许脚本直接在页面或工程的 Jenkins 文件 中写入 。
脚本:
Docker 文件 : 在工程中, Docker 文件是一个用于创建镜像的文本文件 。
所以我们完成了流线, 剩下的就是在启动时填满参数。
四. 詹金斯节点
Jenkins节点的功能是以分布的方式生成这些节点。
使用分布式建筑使同样的代码得以汇编、测试等等。詹金斯在多个环境中(林克斯、Windows)建立代码和产品,代码和产品最终被自动复制到主节点。
现在让我谈谈Windows节点的设置。
1、配置从节点
首先进入配置节点的地方,“系统管理”-->“节点管理”。

在内部建立一个新节点, 命名它任意 只要你能读到它, 勾选一个固定的节点, 然后你就完了 。

①节点配置里

名称: 起始节点的名称; 默认已足够 。
说明:不得提供具体节点信息。
执行额:根据建议4,在此节点执行和分配的结构的最大数目;
远程工作目录: 安装在远程 Windows 服务器上的工作目录, 如 C:/ Jenkins, 必须替换 ;
标签 : 标签用于组合多个节点并将其按空格分隔, 例如 。 “ regression java6” 将标记“ regression” 和“ java6” 上的节点 。 例如, 如果您有多个 Windows 构建节点, 您的工作也需要在 Windows 上运行, 您可以将所有 Windows 节点配置为“ 窗口 ”, 然后将 job 标记为“ 窗口 ” 。 这将确保您的工作不会在 Windows 节点以外的任何节点上执行 。
用法: 控制 Jenkins 如何组织此机器的构造。 两个选项 : 要尽量使用此节点, 只允许使用此机器的操作 。 前 Jenkins 将尽最大可能使用此节点 。 如果能够使用此节点来制造任务, Jenkins 将帮助他; 后一位 Jenkins 将只能构建指定在节点上的任务, 并且将毫无用处 。
激活方法 : Windows 通过“ 由 Java Web 启动代理代理 ” 来尽可能地激活 Windows, 而其它东西则不需要默认填充 。
配置环境变量、 jdk、 JAVA_ HOME 和/opt/java/openjdk 的环境;

保存。
Jenkins与节点2相连。
返回到这个节点, 寻找红色, 但不要惊慌。 这是很自然的。 我们要连接到 Windows 服务器 。

第一步:点击代理。 Jar,下载代理。 Jar, 并将罐袋放在Windows服务器D:/jenkins。
步骤2: 复制第一个命令行, “java-jar agen. 对不起, Jar.. ”, 在 Windows 服务器上到 cmd, 导航到 D:/ jenkins 目录, 粘贴命令, 返回汽车 。

对节点状态的观察表明,连接是成功的。

2. 可以利用节点配置马文项目。
在节点设置后,我们可以看到主页左下角的窗口节点, 其余的修道院都相当相似, 我们进入新的工作。

1 从节点设置修饰项
一般:基本上与上一个版本的配置相同,但有两个附加参数,一个参数用于参数化施工过程,一个参数用于参数化施工过程参数。
限制项目运行节点
参数化构建过程:新增BUILD_ID,dontKillMe /usr/apache/bin/httpd。原因的话在Maven 工程中用于配置某些坑的两节点中进行详细说明;

限制项目正在运行的节点: 标签表达式是您开始填写的标签, 我开始填写相同的名称, 因此连接来自节点 。
来源管理与Git URL、凭单和分支管理相同;更多信息见Maven的部署。
构建触发器: 如马文项目部署中所说, 可能无法填充 。
构建环境: 如 Maven 项目部署中指定的那样, 此字段可能为空白 。
Pre Steps:在Build之前的操作,执行Windows批处理命令,命令:START D:/jenkins/killJenkins.bat。原因的话在Maven 工程中用于配置某些坑的两节点中进行详细说明;

构建: Maven 部署中指定的配置在下面的图像中显示。

包装后,执行马文部署时说明的项目;

以下代码在脚本中解释:
C:/jenkins 是从 CD 到 Maven 包装工程的路径; 一旦软件包默认已成功打包, 可以在 clarl+f 软件包中找到 Maven, 然后将您的罐包, cd 安装到目标目录 。
Javaw在后台运作,可以在调试开始时写下 Java, 以及在服务器上看到 Java 执行 Java 项目的过程, 看看是否有困难, 写上 Javaw 没有问题, 并保存服务器, 这么多的 cmd 框 checkvaw 在后台运行, 并且可以在调试开始时写上 Java, 以及在服务器上看到 Java 项目的实施过程, 看看是否有困难, 写上 Javaw 没有问题, 并保存这么多的 cmd 框;
-Dhudson.util.ProcessTree.disable=true,是执行不要自杀的命令,虽然试的没什么用,但是还是加上去,至于为什么会出现自杀,详见“Maven 工程中用于配置某些坑的两节点”中的第一个坑。
这样就部署完成了!
Maven 工程中用于配置某些坑的两节点
上述部署本可使该项目开始运作,研究詹金斯的一些机制和陷阱可能仍待调查。
由于Jenkins载有某些主机例行程序,而且如果Jenkins在成功后将终止他带来的所有程序,就会出现逻辑没有疑问和Jenkins成功的情况,在Jenkins运作期间,Windows在后台执行Java项目,但在Jenkins成功后,Windows服务器上的Java程序就会结束。
前缀还是没有意义 故事围绕罐子和战袋传来
代码也是用于 shell 脚本, 我们无法像 Windows 那样将线条放在批量顺序中, 但我试图将他放在参数构建过程中, 如果没有生效的话! 但是, 出现了新的问题 。
第二个陷阱的第二个陷阱:鉴于已经说过的话,进入生效之后的困难是什么?第一次部署没有发生故障,但第二次又发生,当马文认为他清楚的时候,显然马文是不正确的,因为他认为自己是清楚的,因为当马文没有杀死他带来的所有进程,包括马文·布卢德,马文没有关闭,仍然在进行中,导致第二次执行,而没有终止港口的工序,马文·清洁建筑的失败,以及我在建筑之前完成了杀害詹金斯的工作,以及
然而,目前,我正在处理一个并非由港口造成的困难。这意味着什么?我在建造之前就停止了港口的流程,但是由于当时未知的原因,它仍然失败,但有时会发生,答案是悄悄地进入Windows服务器,手动在任务管理器中杀死该流程,并且很容易地认出他。
你不能仅仅在服务器上构造一个 python 脚本, 当 KillJenkins 脚本被执行时关闭此图标的进程 。
五、常见的问题
1. 詹金斯和北京的时间不一致
操作:“系统管理”-->“脚本命令行”-->输入下面命令并运行即可
相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
