Kubernetes.

Kubernetes(K8S)是一种用于自动化部署,扩展和管理集装箱应用程序的开源系统。

Kubernetes群集为Jenkins添加了一个新的自动化层。必威国际有限公司Kubernetes确保有效使用资源,并且您的服务器和基础架构不会过载。Kubernetes的协调容器部署能力确保Jenkins始终具有适当的可用资源。必威国际有限公司本节将描述在Kubernetes上安装/运行Jenkins的不同选项。必威国际有限公司

注意:带有minikube的文档方法是一个简单的指南,仅适用于开发和测试目的。它不应用于生产实例。基于的生产实例配置Kubernetes指南

先决条件

Docker.

指的是Docker Engine安装说明为您的平台。

Kubernetes.

如果您没有运行的Kubernetes集群,请参阅创建一个minikube群集部分。

创建一个minikube群集

Minikube是一个工具,在计算机上创建单节点Kubernetes集群。如果您没有运行的Kubernetes群集,请按照以下步骤操作:

  1. 按照从中安装minikube安装minikube.地点。

  2. 安装kubectl。查看该说明安装和设置kubectl页。

  3. 现在你可以通过输入以下命令来创建minikube集群:

    美元minikube开始
  4. 创建群集后,您可以通过输入来验证其状态:

    $ minikube状态

创建名称空间

一个不同的命名空间提供了额外的隔离层,并更好地对连续集成环境进行控制。通过在终端上键入以下命令,为Jenkins部署创建名称必威国际有限公司空间:

$ kubectl创建命名空间jenkins必威国际有限公司

使用以下命令列出现有名称空间:

$ kubectl获取命名空间

输出确认jenkins命名空间已成功创建。必威国际有限公司

$ kubectl获取名称空间名称状态时代默认活动50M Jenkins Active 30s Kube-Node-租赁必威国际有限公司活动50M Kube-Public Active 50M Kube-System Active 50M

用helm v3必威国际有限公司安装Jenkins

典型的Jenkins必威国际有限公司部署包括控制器节点,并且可选地,一个或多个代理组成。为了简化Jenkins的部署,我们将使用必威国际有限公司部署Jenkins。必威国际有限公司Helm是Kubernetes的包管理器,它的包裹格式称为图表。许多社区开发的图表可供选择GitHub.

Helm图表提供“按钮”部署和删除应用程序,使Kubernetes应用程序的采用和开发更轻松,因为容器或微服务体验很少。

先决条件

Helm命令行界面

如果您没有在本地安装并配置了HelM命令行界面,请参阅以下部分安装舵配置舵

安装舵

要安装Helm CLI,请按照以下说明进行操作安装掌舵页。

配置舵

一旦安装了Helm并正确设置,请将Jenkins Repo添加如下:必威国际有限公司

$ helm repo添加jen必威国际有限公司kinsci https://charts.jenkins.io $ helm repo更新

Jenkins Repo中的Helm图表可以用必威国际有限公司命令列出:

$ helm search repo 必威国际有限公司jenkinsci

创建持久卷

我们想创建一个持久的卷对于我们的Jen必威国际有限公司kins控制器豆荚。这将阻止我们在重新启动Minikube时失去Jenkins控制器和我们的工作的整体配置。必威国际有限公司这个官方minikube医生解释我们可以用来安装或数据的目录。在多节点Kubernetes集群中,您需要一些像NFS这样的解决方案,以使挂载目录在整个群集中可用。但是因为我们使用Minikube是一个单节点群集,我们不必打扰它。

我们选择使用/数据目录中。这个目录将包含我们的Jenkins控制器配置。必威国际有限公司

我们将创建一个名为Jenkins-PV的卷:必威国际有限公司

  1. 粘贴内容https://raw.githubusercontent.com/installing-必威国际有限公司jenkins-on-kubernetes/jenkins-volume.yaml.进入yaml格式的文件,调用必威国际有限公司jenkins-volume.yaml

  2. 运行以下命令应用规范:

    $ kubectl应用-f jenki必威国际有限公司ns-stucts.yaml
值得注意的是,在上面的规范中,HostPath使用/ data / jenkins-volume / node of node来模拟网必威国际有限公司络附加的存储。这种方法仅适用于开发和测试目的。对于生产,您应该提供像Google Compute Engine持久磁盘或Amazon Elastic Block Store的网络资源。

创建服务帐户

在Kubernetes中,服务帐户用于为豆荚提供标识。希望与API服务器交互的pod将使用特定的服务帐户进行身份验证。默认情况下,应用程序将作为默认的在它们中运行的命名空间中的服务帐户。例如,这意味着运行的应用程序测试命名空间将使用默认服务帐户测试命名空间。

我们将创建一个名为jenkins的服务帐户:必威国际有限公司

ClusterRole是一组可以分配给给定群集内的资源的权限。Kubernetes API基于它们与之相关的API对象,分为API组。在创建ClusterRole时,您可以指定一个或多个API组中的一个或多个API对象上的ClusterRole可以在一个或多个API组中执行的操作,就像我们上面所做的那样。ClusterRoles有几种用途。您可以使用ClusterRole:

  • 定义名称资源的权限,并在单个命名空间中授予

  • 定义名称资源的权限,并在所有名称空间中授予

  • 定义集群范围资源的权限

如果你想定义一个集群范围的角色,使用ClusterRole;如果要在名称空间中定义角色,请使用role。

一个角色绑定授予用户或用户组中角色定义的权限。它包含主题列表(用户,组或服务帐户),并引用被授予的角色。

RoleBinding可以引用同一命名空间中的任何Role。或者,RoleBinding可以引用ClusterRole并将该ClusterRole绑定到RoleBinding的命名空间。要将ClusterRole绑定到集群中的所有名称空间,我们使用ClusterRoleBinding。

  1. 粘贴内容https://raw.githubusercontent.com/installing-必威国际有限公司jenkins-on-kubernetes/jenkins-sa.yaml.进入yaml格式的文件,调用必威国际有限公司Jenkins-Sa.yaml.

  2. 运行以下命令应用规范:

    $ kubectl应用-f jenki必威国际有限公司ns-sa.yaml

安装Jenkin必威国际有限公司s.

我们将部署Jenkins,包括必威国际有限公司Jenkins Kubernetes插件。看看官方图表更多细节。

  1. 要启用持久性,我们将创建一个覆盖文件并将其作为对掌舵CLI的参数传递。粘贴内容raw.githubusercontent.com/必威国际有限公司jenkinsci/helm-charts/main/charts/jenkins/values.yaml.进入yaml格式的文件,调用必威国际有限公司jenkins-ressign.yaml.

    必威国际有限公司jenkins-ressign.yaml.用作模板以提供设置所需的值。

  2. 打开必威国际有限公司jenkins-ressign.yaml.文件在您喜欢的文本编辑器中并修改以下内容:

    • NodePort:因为我们使用Minikube,我们需要使用NoDePort作为服务类型。只有云提供商提供负载均衡器。我们将端口32000定义为端口。

    • storageClass:

      storageclass.必威国际有限公司Jenkins-PV.
    • ServiceAccount:Jenkins-Values.yaml文件的ServiceAccoun必威国际有限公司t部分应该如下所示:

      serviceAccount创建错误的#默认情况下,服务帐户名称是自动的姓名必威国际有限公司注释{}
      其中`姓名:Jenkins必威国际有限公司`是指为Jenkins创建的ServiceAccount。
    • 我们还可以定义要在Jenkins上安装哪些插件。必威国际有限公司我们使用一些默认的插件,如git和管道插件。

  3. 现在你可以通过运行jenkins来安装J必威国际有限公司enkins舵安装命令并将其传递以下参数:

    • 发布的名称必威国际有限公司

    • 使用覆盖的yaml文件的-f标志必威国际有限公司jenkins-ressign.yaml.

    • 图表的名称必威国际有限公司Jenkinsci / Jenkins.

    • - n用名称空间的名称标记必威国际有限公司

      $ chart 必威国际有限公司= jenkinsci / jenkins $ helm install jenkins-n jenkins -f jenkins-respues.yaml $ chart
      这将输出类似于以下内容:
      名称:Jen必威国际有限公司kins最后部署:6月16日星期三11:13:10 2020命名空间:Jenkins状态:部署修订版:1
  1. 通过运行获取“管理员”用户密码:

    $ jsonpath =“{。data必威国际有限公司.jenkins-admin-password}”$ secret = $(kubectl get secret-n jenkins jenkins -ojsonpath = $ jsonpath)$ echo $(echo $ city | base64 --decode)
  2. 通过在同一she必威国际有限公司ll中运行这些命令来获取Jenkins URL:

    $ jsonpath = “{spec.ports [0] .nodePort}” $ NODE_PORT = $(kubectl GE必威国际有限公司T -n -o詹金斯= jsonpath $ jsonpath服务詹金斯)$ jsonpath =“{项目[0] .status.addresses [0] .Address}“$ node_ip = $(kubectl get nodes-n必威国际有限公司 jenkins -ojsonpath = $ jsonpath)$ echo http:// $ node_ip:$ node_port / login
  3. 使用STEP 1和UserName的密码登录:admin

  4. 通过在值必威国际有限公司中指定configScripts,使用Jenkins配置作为代码。yaml文件。看看配置为代码文档例子

参观必威国际有限公司Kubernetes解决方案页面上的Jenkins有关在Kubernetes上运行Jenkins的更多信息。必威国际有限公司参观必威国际有限公司代码项目的Jenkins配置有关配置为代码的详细信息。。根据您的环境,它可以为Jenkins启动一点时间。必威国际有限公司输入以下命令以检查POD的状态:

$ kubectl get pods -n 必威国际有限公司jenkins

安装Jen必威国际有限公司kins后,应将状态设置为在以下输出中运行:

$ kubectl get pods-n j必威国际有限公司enkins name准备状态重启年龄Jenkins-645fbf58d6-6xfvj 1/1运行0 2 m
  1. 要访问Jenkins Serv必威国际有限公司er,您必须检索密码。您可以使用下面的两个选项中的任何一个检索密码。

    选项1

    运行以下命令:

    $ jsonpath =“{。data必威国际有限公司.jenkins-admin-password}”$ secret = $(kubectl get secret-n jenkins jenkins -ojsonpath = $ jsonpath)$ echo $(echo $ city | base64 --decode)

    输出应该如下所示:

    Um1kJLOWQY

    请注意,您的密码将不同。

    选项2

    运行以下命令:

    美元jsonpath = " {. data。必威国际有限公司" $ kubectl get secret -n Jenkins Jenkins -o jsonpath=$jsonpath .

    输出应该是一个Base64编码字符串是这样的:

    wkiwrkdnbdzyzg ==.

    解码Base64字符串,您有密码。您可以使用这个网站解码您的输出。

  2. 获取使用以下命令运行Jenkins的POD的名称:必威国际有限公司

    $ kubectl get pods -n 必威国际有限公司jenkins
  3. 使用kubectl命令设置端口转发:

    $ kubectl-n j必威国际有限公司enkins端口转发 8080:8080从127.0.0.1:8080转发 - > 8080从[::1]转发:8080  - > 8080

访问127.0.0.1:8080/并使用行政作为您之前检索的用户名和密码。

使用yaml文件必威国际有限公司安装Jenkins

本节介绍如何使用一组yaml(又一次标记语言)文件来在Kubernetes集群上安装Jenkins。必威国际有限公司yaml文件很容易跟踪,编辑,并且可以无限期地重用。

创建Jenki必威国际有限公司ns部署文件

复制内容这里进入您首选的文本编辑器并在我们创建的“Jenkins”命名空间中创建Jenkins-Dep必威国际有限公司loyment.yaml文件部分以上。

  • 这个部署文件正在定义部署,如图所示种类场地。

  • 部署指定单个副本。这可确保在发生故障时由Replication Controller维护一个且仅一个实例。

  • 容器图像名称是Jenkins,版本为2.32.2必威国际有限公司

  • 规范中指定的端口列表是在Pods IP地址上从容器公开的端口列表。

    • 必威国际有限公司Jenkins运行在(http) 8080端口上。

    • POD暴露Jenkins容器的端口8080。必威国际有限公司

  • 文件的VolumeMounts部分创建持久卷。此卷安装在路径/ var / jenkins_home的容器中,因此对/ var / jenkins_home内的数据进行必威国际有限公司修改,写入卷。持久卷的作用是存储基本的Jenkins数据并将其保留超出POD的寿命。必威国际有限公司

将内容添加到Jenkins部署文件后,退出并保存更改。必威国际有限公司

部署詹金斯必威国际有限公司

要创建部署执行:

$ kubectl创建-f jenkin必威国际有限公司s-deployment。yaml - n必威国际有限公司詹金斯

该命令还指示系统在Jenkins命名空间中安装Jenkins。必威国际有限公司

要验证创建部署是否成功,可以调用:

$ kubectl get部署 -  n jenkins必威国际有限公司

授予对Jenkins服务的访问权必威国际有限公司限

我们部署了Jenki必威国际有限公司ns实例,但仍然无法访问。Jenk必威国际有限公司ins Pod已分配了Kubernetes集群内部的IP地址。可以登录Kubernetes节点并从那里访问Jenkins,但这不是访问服务的非常有用的方法。必威国际有限公司

为了在Kuber必威国际有限公司netes集群之外访问Jenkins, Pod需要作为服务公开。服务是向更广泛的网络公开Jenkins的抽象。必威国际有限公司它允许我们保持与pod的持久连接,而不管集群中发生了什么变化。对于本地部署,这意味着创建一个NodePort服务类型。NodePort服务类型公开集群中每个节点的端口上的服务。通过Node IP地址和服务nodePort访问服务。定义了一个简单的服务这里

  • 这个服务文件是按照种类场地。

  • 该服务是NodePort类型。其他选项是Clusterip(仅在群集中访问)和LoadBalancer(由云提供商分配的IP地址,例如AWS Elastic IP)。

  • 规范中指定的端口列表是此服务公开的端口列表。

    • 端口是服务将由服务暴露的端口。

    • 目标端口是访问由此服务定向的POD的端口。也可以指定端口名称。

  • 选择器指定由此服务定向的POD的选择标准。

要创建服务执行:

$ kubectl create -f 必威国际有限公司jenkins-service.yaml-n jenkins

要验证创建服务是否成功,您可以运行:

$ kubectl get services-n j必威国际有限公司enkins名称键入群集 -  IP外部IP端口jenkins nodeport 10.103.31.217  8080:32664 / tcp 59s

访问詹金斯仪表必威国际有限公司板

现在我们已经创建了一个部署和服务,我们如何访问Jenkins?必威国际有限公司

从上面的输出,我们可以看到服务已经在端口32664上公开了。我们也知道,因为服务是NodeType类型,服务将在该端口上的任何节点上路由到Jenkins Pod的请求。必威国际有限公司所有这些都留给我们的是确定Minikube VM的IP地址。Minikube通过包括输出运行群集的IP地址的特定命令,使这非常简单:

$ minikube IP 192.168.99.100

现在我们可以访问Jenkins实例必威国际有限公司192.168.99.100:30104/

要访问Jenkins必威国际有限公司,最初需要输入您的凭据。新安装的默认用户名是admin。密码可以通过几种方式获得。此示例使用Jenkins Deploymen必威国际有限公司t Pod名称。

要查找POD的名称,请输入以下命令:

$ kubectl get pods -n 必威国际有限公司jenkins

找到POD的名称后,使用它来访问POD的日志。

$ kubectl logs  -n 必威国际有限公司jenkins

密码在日志的末尾格式化为长字母数字字符串:

************************************************************* ************************************************************* ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: 94b73ef6578c4b4692a157f768b2cfef This may also be found at: /var/jenkins_home/secrets/initialAdminPassword ************************************************************* ************************************************************* *************************************************************

您已在Kubernetes集群上成功安装Jenkins,可以使用必威国际有限公司它来创建新的高效开发流水线。

用Jenkins必威国际有限公司运营商安装Jenkins

必威国际有限公司Jenkins运营商是一个Kubernetes本地操作员,管理Jenkins在Kubernetes上的操作。必威国际有限公司它在构建时将不可变性和声明性配置作为代码。Jenk必威国际有限公司ins Operator易于安装,只需几个清单,并允许用户在Kubernetes上配置和管理Jenkins。

先决条件

必威国际有限公司Jenkins运营商

如果您没有在本地安装和配置Jenki必威国际有限公司ns Operator,请参阅下面的章节安装Jenkin必威国际有限公司s运营商

安装Jenkin必威国际有限公司s运营商

需求

要运行Jenk必威国际有限公司ins运算符,您将需要:

  1. 访问Kubernetes集群。如果您没有运行的Kubernetes集群,请参阅使用minikube创建Kubernetes集群上面的部分。

  2. kubectl version 1.11 +

配置自定义资源定义

自定义资源定义(CRD)API已被引入V1.7中的Kubernetes,并且它使用户能够将自定义API添加到他们的Kubernetes群集中,该群集可以与任何其他本机Kubernetes对象一起使用。定义CRD对象使用您指定的名称和架构创建新的自定义资源。Kubernetes API服务并处理您的自定义资源的存储。

安装Jenkin必威国际有限公司s自定义资源定义

请注意,诸如下面的样本yaml文件的链接可能会根据维护而变化,并最好从官方文档中验证这里使用前。

$ crd_file = kubernetes-operator / master / deploy必威国际有限公司 / crds / jenkins_v1alpha2_jenkins_crd.yaml $ kubectl应用-f https://raw.githubusercontent.com/jenkinsci/wrcld_file

部署Jenki必威国际有限公司ns运营商

有两种方法可以部署Jenkins运算符。必威国际有限公司

使用yaml

应用服务帐户和RBAC角色:

$ deploy_file = kubernetes-operator / master / deploy / all-in-on-v1alpha2.yaml $ kubectl应用-f https://raw.githubusercontent.co必威国际有限公司m/jenkinsci/whdeploy_file

查看正在创建必威国际有限公司的Jenkins Operator实例:

$ kubectl获得豆荚

现在Je必威国际有限公司nkins运算符应在默认命名空间中运行。

使用Helm图表

有一个选项可以使用Helm安装操作员。它需要掌舵3+进行部署。如果您没有在本地安装并配置了Helm命令行界面,请参阅上面的部分安装舵

为运营商创建一个名称空间

看看创建名称空间上面的部分。

配置舵

一旦Helm安装和设置正确,添加Jenkins-Operator repo如下:必威国际有限公司

$ chart_file = Kubernetes-Operator / Master / Chart $ Helm Rep必威国际有限公司o添加Jenkins https://raw.githubusercontent.com/jenkinsci/rchart_file
安装Jenkin必威国际有限公司s运营商
$ helm install  必威国际有限公司jenkins / jenkins-operator -n jenkins

要添加自定义标签和注释,可以使用values.yaml如下所述的文件安装Jenkin必威国际有限公司s.上面的部分或将它们传递成Helm install命令,例如:

$ label =必威国际有限公司“jenkins.labels.labelkey = labelvalue”$ annotation =“jenkins.annotations.annotationkey = AnnotationValue”$ name = My-Jenkins-Operator-Install $ Helm Install $ Name Jenkins / Jenkins-Operator -N Jenkins -Set$标签,$注释

部署詹金斯必威国际有限公司

一旦Jen必威国际有限公司kins运算符启动并运行,让我们部署实际的Jenkins实例。创造一个清单。必威国际有限公司Jenkins_instance.yaml使用以下数据并在本地保存。

apiersion必威国际有限公司jenkins.io/v1alpha2.种类必威国际有限公司元数据姓名例子规格容器: -名称:Jen必威国际有限公司kins-Master图片必威国际有限公司Jenkins / Jenkins:LTS-JDK11imagePullpolicy.总是LiventiveProbe.故障障碍12httpGet.小路/登录港口http.方案http.initialDelaySeconds80periodSeconds10成功1超时5.ReadinessProbe.故障障碍3.httpGet.小路/登录港口http.方案http.initialDelaySeconds30.periodSeconds10成功1超时1资源限制cpu1500米记忆3GI.要求cpu1记忆500mi.撒豆: -ID:J必威国际有限公司enkins-Operator目标/ * .jenkins必威国际有限公司蔡先生/工作描述必威国际有限公司Jenkins运营商存储库repositorybranch.repositoryurl.https://github.com/必威国际有限公司jenkinsci/kubernetes-operator.git

将Jenkin必威国际有限公司s部署到Kubernetes:

$ kubectl create -f 必威国际有限公司jenkins_instance.yaml-n jenkins

观看正在创建的Jen必威国际有限公司kins实例:

$ kubectl get pods -n 必威国际有限公司jenkins
获取Je必威国际有限公司nkins凭证
$ secret_name 必威国际有限公司= jenkins-operator-credentials-  $ kubectl-n jenkins get secret $ secret_name -o'jsonpath = {。data.user}'base64 -d $ kubectl-n j必威国际有限公司enkins get secret $ secret_name -o'jsonpath = {。data.password}'|Base64 -D
连接到Jenkins(必威国际有限公司Minikube)
$ minikube service 必威国际有限公司Jenkins -operator-http-——url
连接到Jenkins(必威国际有限公司实际的Kubernetes集群)
$ kubectl端口前进jenkins- <必威国际有限公司cr_name> 8080:8080

然后用地址打开浏览器localhost: 8080查看您的Jenkins D必威国际有限公司ashboard。

后安装安装向导

使用上面的一个过程下载后,安装和运行Jenkins后,启动后安装后的安装向导。必威国际有限公司

此设置向导将通过一些快速的“一次性”步骤来解锁Jenkins,使用插件自定义它并创建第一个管理员用户,您可以通过该插件继续访问Jenkins。必威国际有限公司

解锁Jenkins.必威国际有限公司

当您首次访问新的Jenkins实例时,系统会要求您使用自必威国际有限公司动生成的密码解锁它。

  1. 浏览到http:// localhost:8080(或安装它时,您为Jenkins配置的哪个端口)并等待直到必威国际有限公司解锁Jenki必威国际有限公司ns.出现页面。

    解锁Jenki必威国际有限公司ns Page.“width=

  2. 从Jenkins控必威国际有限公司制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。

    复制初始管理员密码“width=
    注意:

    • 命令:sudo cat / var / l必威国际有限公司ib / jenkins / secrets / ligitadminpassword将在控制台打印密码。

    • 如果您使用官方运行码头的Jenkins必威国际有限公司必威国际有限公司Jenkins / Jenkins.你可以使用的图像sudo docker exec $ {countrouon_id或container_name} cat / var 必威国际有限公司/ jenkins_home / secrets / sitaladminpassword在控制台中打印密码,而不必执行到容器中。

  3. 解锁Jenki必威国际有限公司ns.页面,将此密码粘贴到管理员密码字段并点击继续
    笔记:

    • 您可以随时从Docker日志访问Jenkins控制台必威国际有限公司日志(以上)。

    • Jenk必威国际有限公司ins Console日志表示此密码也可以获得此密码的位置(在Jenkins主目录中)。在您可以访问Jenkins的主UI之前,必须在新的Jenkins安装上的安装向导中输入此密码。必威国际有限公司如果您碰巧跳过安装向导中的后续用户创建步骤,此密码也可用作默认的管理员帐户的密码(使用用户名“admin”)。

使用插件自定义Jenki必威国际有限公司ns

解锁Jenkins.必威国际有限公司, 这定制Jenkins.必威国际有限公司出现页面。在这里,您可以将任意数量的有用插件安装为初始设置的一部分。

单击显示的两个选项之一:

  • 安装建议的插件- 要安装推荐的插件集,这些插件基于最常见的用例。

  • 选择要安装的插件- 要选择最初安装的一组插件。首次访问插件选择页面时,默认选择建议的插件。

如果您不确定您需要的插件,请选择安装建议的插件。您可以在稍后的时间点安装(或删除)额外的Jenkins插件必威国际有限公司管理Jenki必威国际有限公司ns.>管理插件詹金斯的页面。必威国际有限公司

安装向导显示正在配置的Jenkins的进展以及正在安装的所选Jenkins插件。必威国际有限公司这个过程可能需要几分钟。

创建第一个管理员用户

最后,之后使用插件定制Jenkin必威国际有限公司s, 必威国际有限公司Jenkins要求您创建您的第一个管理员用户。

  1. 当。。。的时候创建第一个管理员用户出现页面,指定管理员用户在各个字段中的详细信息,然后单击保存并完成

  2. 当。。。的时候必威国际有限公司詹金斯已经准备好了页面出现时,单击开始使用詹金斯必威国际有限公司
    笔记:

    • 此页面可能表示必威国际有限公司詹金斯几乎准备好了!相反,如果是,请点击重新开始

    • 如果一分钟后页面不会自动刷新,请使用Web浏览器手动刷新页面。

  3. 如果需要,请使用您创建的用户的凭据登录Jenk必威国际有限公司ins,您可以开始使用Jenkins!



此页面有用吗?

请通过此提交您关于此页面的反馈快速形式

或者,如果您不希望填写快速表格,您可以简单地指示您是否找到此页面有用吗?

是的没有


这里。