mirror of
https://github.com/gnu4cn/jenkins_book_zh.git
synced 2026-08-19 02:13:29 +08:00
Updated src/ALL.md.
This commit is contained in:
6
append_end.sh
Normal file
6
append_end.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
PWD="$(pwd)"
|
||||
for f in $(find "src/" -type f -name "*.md" ); do
|
||||
if [[ "${f}" == *"SUMMARY"* ]] || [[ "${f}" == *"README"* ]]; then continue; fi
|
||||
echo -e "\n\n(End)\n\n" >> "$PWD/$f"
|
||||
done
|
||||
@@ -19,3 +19,8 @@
|
||||
如果你是一名系统管理员,想学习如何执行 Jenkins 服务器和节点的备份、恢复、维护,请看 [Jenkins 系统管理](Ch06_System_Administration.md)。
|
||||
|
||||
其余章节涉及 Jenkins 集群与故障排除等方面。最后章节是个词汇表。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -5,3 +5,8 @@
|
||||
Jenkins 通常在其自己的进程中作为独立应用程序运行。 Jenkins WAR 文件捆绑了 [Winstone](https://github.com/jenkinsci/winstone),一个 [Jetty](https://www.eclipse.org/jetty/) servlet 容器包装器,并且可以在任何操作系统或平台上启动,只要有 Jenkins 支持的 Java 版本。
|
||||
|
||||
理论上,Jenkins 也可以在 [Apache Tomcat](https://tomcat.apache.org/) 或 [WildFly](https://www.wildfly.org/) 这样的传统 servlet 容器中作为 servlet 运行,但在实践中,这基本上没有经过测试,而且有很多注意事项。特别是,对 WebSocket 代理的支持只在 Jetty servlet 容器中实现。详见 [Servlet 容器支持政策](https://www.jenkins.io/doc/administration/requirements/servlet-containers) 页面。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -1 +1,6 @@
|
||||
本章介绍 Jenkins 系统管理方面的知识,包括 Java 要求、Jenkins 升级、Windows 系统支持政策与 Linux 系统支持政策等内容。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -57,3 +57,8 @@ Jenkins 项目使用 [Eclipse Temurin](https://projects.eclipse.org/projects/ado
|
||||
|
||||
- 在多种平台上的可用性,包括不同的操作系统和体系结构,以及许多不同的 Java SE 版本;
|
||||
- 由 Eclipse 基金会提供定期维护和长期支持。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -38,3 +38,8 @@
|
||||
### 版本历史
|
||||
|
||||
- 2022 年三月 - 首个版本([邮件列表中的讨论](https://groups.google.com/g/jenkinsci-dev/c/cYi4GyG7Il8/m/oQ2m0C3UAgAJ)、[治理会议记录和录音](https://community.jenkins.io/t/governance-meeting-jan-26-2022/1348))。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -61,3 +61,8 @@ Java Web Start 已从 Java 11 中移除。当 Jenkins 控制器在 Java 11 上
|
||||
Oracle JDK 11 的授权使 Jenkins 社区无法列出 Oracle JDK。由于这一许可限制,Oracle JDK 11 不能被 Jenkins 自动安装。这个问题在 [issue JENKINS-54305](https://issues.jenkins.io/browse/JENKINS-54305) 中进行了追踪。
|
||||
|
||||
作为替代方案,我们鼓励你使用其中包含了构建所需的所有工具的基于镜像的容器。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -29,3 +29,8 @@ Jenkins 的 web 浏览器支持分为三类:
|
||||
- 2022-02-01 - 移除对 Internet Explorer 的支持,增加 Edge( [开发者邮件列表中的讨论](https://groups.google.com/g/jenkinsci-dev/c/piANoeohdik) );
|
||||
- 2019-11-19 - 政策更新([开发者邮件列表中的讨论](https://groups.google.com/forum/#!topic/jenkinsci-dev/TV_pLEah9B4) );
|
||||
- 2014-09-03 - Jenkins 1.579 的最初政策( [治理会议记录](http://meetings.jenkins-ci.org/jenkins/2014/jenkins.2014-09-03-18.01.html) )。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -48,3 +48,8 @@ Jenkins 插件,例如 [WMI Windows 代理](https://plugins.jenkins.io/windows-
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -143,3 +143,8 @@ Blue Ocean 是作为一组 Jenkins 插件构建的。与其他插件的关键区
|
||||
- 订阅 [Jenkins 用户邮件列表](https://groups.google.com/g/jenkinsci-users) 并提问;
|
||||
|
||||
- 开发人员?我们已经 [标注了一些问题](https://issues.jenkins.io/issues/?filter=16142),非常适合想要开始开发 Blue Ocean 的人。别忘了来 Gitter 聊天室做个自我介绍!
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -55,3 +55,8 @@ Blue Ocean 可让咱们轻松地在 Jenkins 中,创建流水线项目。
|
||||
#### 本地代码仓库
|
||||
|
||||
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -117,3 +117,8 @@ Blue Ocean 不支持 Jenkins 的某些传统或管理性功能,而这些功能
|
||||

|
||||
|
||||
选择该按钮后,咱们将进入 Jenkins 经典用户界面中的相应页面,或与 Blue Ocean 中当前页面最相关的经典用户界面页面。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -3,3 +3,8 @@
|
||||
### 控制器
|
||||
|
||||
**Controller**
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -397,3 +397,8 @@ docker container restart jenkins-blueocean
|
||||
```
|
||||
|
||||
大功告成!
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -77,3 +77,8 @@ Jenkins网络配置一般由命令行参数控制。网络配置的参数有:
|
||||
### Windows 下的 HTTPS 证书问题
|
||||
|
||||
<略>, 请参考 [HTTPS certificates with Windows](https://www.jenkins.io/doc/book/installing/initial-settings/#https-certificates-with-windows)。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -727,3 +727,8 @@ Jenkins Operator 很容易安装,只需应用几个 `yaml` 清单或使用 Hel
|
||||
在 Kubernetes 环境中,pod 或节点的删除可能随时发生。他可能是一个打补丁的活动,也可能是一个缩减的活动,a downscaling activity。
|
||||
|
||||
希望这个分步指南能帮助咱们学习和理解在 Kubernetes 集群上设置 Jenkins 服务器所涉及的组件。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -200,3 +200,8 @@ firewall-cmd --reload
|
||||
{{#include ./linux.md:119:191}}
|
||||
|
||||
{{#include ./docker.md:292:}}
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -14,3 +14,8 @@
|
||||
- [其他 Servlet 容器](https://www.jenkins.io/doc/book/installing/servlet-containers/)
|
||||
|
||||
- [离线安装](https://www.jenkins.io/doc/book/installing/offline/)
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -333,3 +333,8 @@ org.acegisecurity.userdetails.UsernameNotFoundException: <name_you_used>
|
||||
7. 点击 **保存**。
|
||||
|
||||
当咱们尝试认证时,咱们就可以刷新页面,看看内部发生了什么。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -10,3 +10,8 @@ Scripts not permitted to use staticMethod org.codehaus.groovy.runtime.DefaultGro
|
||||
```
|
||||
|
||||
原因是这个 `sh` 步骤中,包含了多个 `.` 符合,违反了 Jenkins 的相关限制。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -310,3 +310,8 @@ node { // 5
|
||||
|
||||
|
||||
请在 [管道语法](./pipeline/syntax.md) 页面阅读更多有个管道语法的内容。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -188,3 +188,8 @@ echo(s())
|
||||
|
||||
|
||||
不幸的是,某些表达式即使执行正确,也可能错误地触发此类警告。如果遇到这种情况,请为 `workflow-cps-plugin` [提交一个新问题](https://www.jenkins.io/participate/report-issue/redirect/#21713)(请首先检查是否有重复)。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -178,3 +178,8 @@
|
||||
|
||||
|
||||
> **注意**:这条说明旨在告知用户,此行为的根本原因。不建议将流水线的持久性设置,纯粹为了避免可序列化问题而设置为性能优化,Performance Optimized。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -154,3 +154,8 @@
|
||||
- [GitLab 分支源](https://plugins.jenkins.io/gitlab-branch-source) 插件中的 GitLab;
|
||||
|
||||
- [Gitea](https://plugins.jenkins.io/gitea) 插件中的 Gitea。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -246,3 +246,8 @@ Eclipse 的 `Jenkins Editor` 插件可以在 [Eclipse Marketplace](https://marke
|
||||
|
||||
|
||||
[流水线的单元测试框架](https://github.com/jenkinsci/JenkinsPipelineUnit) 允许咱们在完全运行流水线和 [共享库](./shared-libraries.md) 之前对其进行 [单元测试](https://en.wikipedia.org/wiki/Unit_testing)。他提供了一个模拟执行环境,其中真实的流水线步骤会被模拟对象取代,咱们可以用他来检查预期行为。这个框架有着新的和略微粗糙的边缘,但很有希望,new and rough around the edges, but promising。这个项目的 [README](https://github.com/jenkinsci/JenkinsPipelineUnit/blob/master/README.md) 包含了一些示例及使用说明。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -538,3 +538,8 @@ node {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -313,3 +313,8 @@ stage('Stage 1') {
|
||||
- [Pipeline 步骤参考](../pipeline_steps_ref.md),包含 Jenkins 更新中心分发插件所提供的所有步骤;
|
||||
|
||||
- [Pipeline 示例集](../pipeline_examples.md),一个由社区策划的可复制 Pipeline 示例的集合。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -1175,3 +1175,8 @@ stage('Test') {
|
||||
|
||||
|
||||
现在,假设 Jenkins 环境中存在必要容量,在标记为 `linux` 与 `windows` 节点上的测试将并行执行,而不再是序列执行。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -186,3 +186,8 @@
|
||||
如果并发构建,concurrent builds,要求相同的工作区,那么一个后缀为 `@2` 的目录可能被锁定。目前没有等待锁定所请求的确切目录的选项;如果咱们需要强制执行这种行为,咱们既可以在 `pwd` 表明咱们得到了一个不同的目录时进行失败处理(`error`),或者咱们可以通过一些其他手段(如 `lock` 步骤)强制顺序执行构建的这一部分。
|
||||
|
||||
如果咱们不关心加锁的问题,那么只需使用 `dir` 步骤来改变当前目录。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -326,3 +326,8 @@ archiveArtifacts artifacts: '**', fingerprint: true
|
||||
*图 3,某个 `.WAR` 文件的指纹*
|
||||
|
||||
请访问 [指纹文档](https://www.jenkins.io/doc/book/using/fingerprints/) 了解更多信息。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -154,3 +154,8 @@ pipeline {
|
||||
6. 在 Jenkinsfile 中配置的 `triggers`,只有在构建一次后,才会生效;
|
||||
|
||||
7. 在以分钟为粒度的 `cron` 无法满足咱们的需要时,就要使用具有秒级认知的系统,比如 rest api 调用,或 Jenkins CLI 来满足咱们的目标。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -154,3 +154,8 @@
|
||||
- 要尽量限制流水线写入日志的数据量。如果要写入几个 MB 的日志数据,例如来自构建工具的数据,则可以考虑将其写入外部文件,压缩后作为构建产物存档;
|
||||
|
||||
- 当用到堆容量超过 6 GB 的 Jenkins 时,请使用 [建议的垃圾收集调整选项](https://www.jenkins.io/blog/2016/11/21/gc-tuning/),以尽量减少垃圾收集的暂停时间和开销。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -749,3 +749,8 @@ evenOrOdd(currentBuild.getNumber())
|
||||
|
||||
|
||||
到目前为止,只有整个的 `pipeline` 可以在共享库中定义。这只能在 `vars/*.groovy` 中进行,而且只能在 `call` 方法中进行。在一次构建中只能执行一条声明式流水线,如果咱们试图执行第二条,咱们的构建将因此而失败。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -2198,3 +2198,8 @@ node {
|
||||
2. [声明式编程模型,declarative programming](https://en.wikipedia.org/wiki/Declarative_programming)
|
||||
|
||||
3. [命令式编程模型, imperative programming](https://en.wikipedia.org/wiki/Imperative_programming)
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# 扩展 Jenkins 的规模
|
||||
|
||||
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -11,3 +11,8 @@
|
||||
## 为控制器选择适当的硬件
|
||||
|
||||
正确设置 Jenkins 实例的最大挑战之一,是没有一个放之四海而皆准的答案 -- 你所需要的硬件的确切规格将在很大程度上取决于你的组织的当前和未来需求。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -48,3 +48,8 @@
|
||||
## 如果构建没有中止
|
||||
|
||||
请检查线程转储 `https://build.xfoss.com/threadDump`,寻找有问题的执行器线程 -- 他们是以代理和执行器编号命名的。这通常会告诉咱们线程的位置,并经常会揭示出他们为什么对中断没有反应。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -10,3 +10,8 @@
|
||||
咱们可能想改变显示的时区,以符合咱们自己的时区。通过进入用户配置页面,咱们可以设置 **用户定义的时区,User Defined Time Zone** 来匹配咱们自己的时区。
|
||||
|
||||

|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -13,3 +13,8 @@
|
||||
2. **等待某个代理上的可用执行器,waiting for an available executor on an agent**:咱们的构建需要在某个特定的代理上运行,但该代理已经完全忙于构建其他东西,而咱们构建等待的时间相比于其用于执行的时间 “太长” -- 换句话说,当构建本身在 2 分钟内完成时,等待 5 分钟是没有意义的。请使用标签,使构建可以在任何满足系统要求的机器上运行,通过这种方式,咱们可以增加更多的代理来改进周转时间;
|
||||
|
||||
3. **等待位于某个标签上的可用执行器,waiting for an available executor on a label**:所有具有给定标签的代理都在忙于做其他事情。是时候添加更多代理了。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -92,3 +92,8 @@ $JENKINS_HOME/fingerprints
|
||||
4. 点击他,咱们就将被带到相应的 TOP-TEST 构建页面,这将显示测试报告;
|
||||
|
||||
5. 如果没有显示 TOP-TEST 构建,那就意味着 TOP-TEST 构建没有针对 TOP #7 运行。也许他跳过了 TOP #7(如果在很短的时间内有大量的 TOP 构建,这种情况可能发生),或者也许一个新的 TOP-TEST 构建正在进行。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -130,3 +130,8 @@ mymultibranchproject/feature%2Fmyfeature
|
||||
## 对于 Jenkins 和 Jenkins 插件的开发者
|
||||
|
||||
请参阅 [`Jenkins::getItem()`](https://javadoc.jenkins.io/jenkins/model/Jenkins.html#getItem-java.lang.String-hudson.model.ItemGroup-) 函数。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -205,3 +205,8 @@ X-Hudson: 1.395
|
||||
X-Jenkins: 2.401.1
|
||||
X-Jenkins-Session: 28a2145a
|
||||
```
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -33,3 +33,8 @@ Jenkins 中的每个页面右上方都有一个搜索框,让咱们快速到达
|
||||
## 希望得到反馈
|
||||
|
||||
在 Jenkins 如何将搜索词与实际页面联系起来方面,总是有改进的余地。我们希望得到你的反馈。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -126,3 +126,8 @@ ssh-keygen -m PEM -t rsa -b 2048
|
||||
```
|
||||
|
||||
创建出 `id_rsa_pem` 及 `id_rsa_pem.pub` 密钥对,并将私钥添加到 Jenkins 的凭据管理中,随后在 `ssh-steps` 中调用私钥。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -260,3 +260,8 @@ Finished: SUCCESS
|
||||
|
||||
|
||||
[](https://www.youtube.com/watch?v=MTLgbp0GH8w)
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -227,3 +227,8 @@ C:\ProgramData\chocolatey\bin\jmeter.cmd -j $env:OUT=xml -n -t $env:JMX -l $env:
|
||||

|
||||
|
||||
咱们现在已经在 Jenkins 中运行了 JMeter,并且可以使用其所提供的数据。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -7,3 +7,8 @@ Jenkins 根据浏览器的语言来显示文本。他会检测咱们 web 浏览
|
||||
咱们还可以通过使用 [Locale Plugin](https://plugins.jenkins.io/locale) 改变系统语言(在执行构建时使用),以及所有用户的用户界面语言。
|
||||
|
||||

|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
@@ -33,3 +33,8 @@ Turn on the configuration under **Manage Jenkins** -→ **Configure System** -
|
||||
|
||||
|
||||
参见:[Not sending mail to unregistered user because your SCM claimed this was associated with a user ID which your security realm does not recognize](https://docs.cloudbees.com/docs/cloudbees-ci-kb/latest/client-and-managed-controllers/not-sending-mail-to-unregistered-user-associated-with-scm)。
|
||||
|
||||
|
||||
(End)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user