提交 87bd779d 编写于 作者: LinuxSuRen's avatar LinuxSuRen

Auto commit by hugo-plugin.

上级 5c0e7e9a
......@@ -36,7 +36,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/" />
<meta property="og:updated_time" content="2019-05-15T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Jenkins 中文社区">
<meta itemprop="description" content="">
......@@ -244,29 +244,29 @@
<a href="/event/wuhang/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/hacktberfest.jpg"></img>
<a href="/event/hangzhou-2019-05/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/hangzhou.jpeg"></img>
</a>
<a href="/event/shenzhen/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shenzhen.jpeg"></img>
<a href="/event/beijing-2019-04-20/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/cloud-native-community-day.jpeg"></img>
</a>
<a href="/event/beijing-2019-04-20/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/cloud-native-community-day.jpeg"></img>
<a href="/event/wuhang/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/hacktberfest.jpg"></img>
</a>
<a href="/event/hangzhou-2019-05/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/hangzhou.jpeg"></img>
<a href="/event/shanghai-2019-06/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shanghai.jpeg"></img>
</a>
......@@ -279,8 +279,8 @@
<a href="/event/shanghai-2019-06/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shanghai.jpeg"></img>
<a href="/event/shenzhen/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shenzhen.jpeg"></img>
</a>
......
......@@ -12,6 +12,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/",
"title": "与云无关的用于 Kubernetes 的自动化 CI/CD ",
"type": "wechat",
"date": "2019-05-16 00:00:00 +0000 UTC",
"tags": ["cd", "ci", "kubernetes"],
"description": "请看看您可能想要用来设置与云无关的生产和开发环境的一些工具和流程。",
"content": " 在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。\n它的部署模型的核心是 Rancher,Rancher 负责为托管在不同云环境和裸机环境中的多个 Kubernetes 集群提供集中管理与运营的能力。 根据应用程序和业务需要,这里提到的工具可以替换为自己选择的工具。\n在详细介绍之前,这里有张部署模型的快照:\n持续集成组件 我们使用 JIRA、BitBucket、Bamboo 和 Nexus 作为自动化持续集成组件。 需求和用户故事来自 JIRA ; 开发人员将他们的代码放进 BitBucket ; 代码被代码评审工具和静态分析工具构建与集成,Bamboo 生成的 Docker 镜像被推送到 Nexus。 这些镜像会经过特定的容器安全检查。\n当你有许多微服务/应用程序需要构建时,那么处理 Kubernetes 集群工作负载的部署、升级和回滚可能会复杂。 版本控制是我们需要考虑的另一个挑战。 Helm 有助于克服这些大多数挑战,并使部署变得简单。\n如果你想知道你是否需要有一个 chart 将所有 deployments 包含在其中, 或者允许每个应用程序和微服务都有一个单独的 chart , 那么我们希望将这些 charts 放到特定的应用程序或微服务的仓库中, 这样我们就不需要有单独的仓库来维护 Helm 制品。 这就省去了为实际的代码和 Helm 模板维护两个独立仓库的工作。 开发人员可以对任何应用程序代码更改所需的模板更改有更多的控制权。\nNexus 作为 Docker 镜像和 Helm chart(使用的是 Helm Nexus 插件)的仓库。 每次成功构建应用程序后,镜像和 chart 都是可用的并被推送到 Nexus 。\n持续部署组件 为了实现与云无关的准备,我们选择了 Terraform ,因为它易于学习并易于部署。 我们发现对于准备后的配置管理/维护活动, Terraform 并不是非常有用,所以我们还放置了一些 Ansible 脚本。 我们也曾考虑 Ansible 用于准备,但是使用 Terraform 可以让我们更好地控制启动实例, 这些实例可以作为 Rancher Server/节点,并且可以被自动的添加到自动伸缩组中。 我们使用启动脚本功能实现了这一点。\n我们认为可以将为 AWS 编写的大多数 Terraform 脚本重用到 Azure 中,但事实并非如此。 我们必须做出相当大的改变。\n我们部署了一个运行在三个不同实例上的高可用的 Rancher Server ,前面有一个 NGINX Server 来为这三个实例做负载均衡。 部署是使用 Terraform 和启动脚本完成的。 脚本使用 RKE ( Rancher Kubenetes 引擎)和 Rancher API 调用来启动集群(高可用的 Rancher Server )。\nRancher 提供了各种选项来在不同的云提供商上添加 Kubernetes 集群。 您可以从选项中进行选择,使用托管的 Kubernetes 提供商,或者使用基础设施提供商的节点或自定义节点。 在这个场景中,我们选择使用 AWS 和 Azure 上的自定义节点,而不是托管的 Kubernetes 提供商。 这帮助我们向自动伸缩组添加一组工作节点,并使用集群自动伸缩器进行节点伸缩。\n所有这些都是通过启动脚本和 Rancher API 调用自动完成的,因此任何通过 ASG (和自动伸缩器)添加的新节点都会自动注册为一个 Rancher/Kubernetes 节点。 通过启动脚本自动执行的一些活动包括: - 安装和配置所需的 Docker 版本 - 在所有实例上安装和配置 Zabbix 代理(稍后将在监控中使用) - 安装所需的 GlusterFS 客户端组件 - 安装所需的 kubectl 客户端 - 后端数据库集群所需的任何其他自定义配置 - 自动挂载额外的 EBS 卷和 GlusterFS 卷 - 为 Rancher 代理/Kubernetes 节点运行 Docker 容器并附加特定的角色( etcd/controlplane/worker ) - 检查以确保 Rancher 代理可用、启动和运行。\nGlusterFS 被考虑可以处理 EBS 和 Azure 中不可用的 ReadWriteMany 磁盘卷类型。 这对于我们部署的许多应用程序都是必需的。\n一个 ELK stack ( ElasticSearch、Logstash 和 Kibana )使用 Helm charts 部署在 Kubernetes 上, 并被配置为通过 logstash 推送容器日志、审计和其他自定义日志。\nHAProxy 和 NGINX 被用于两个不同的目的。 NGINX 是在 Rancher Server HA 设置期间所提供的默认 ingress controller 。 这用于三个 Rancher Server 的负载均衡。 我们在 Kubernetes 集群上部署了一个 HAProxy Ingress Controller, 这样我们就可以通过这些特定的节点(其 IPs 映射到特定的 FQDNs)暴露应用程序的 end points 。 HAProxy ingress controller 被部署为 daemonset ,因此对于任何额外的负载,节点的数量会基于自动伸缩组和自动伸缩器自动增加。\n持续监控组件 我们部署了 Prometheus、Grafana 和 Alertmanager 套件,用于容量规划以及监控 Rancher/Kubernetes 集群的状态。 这再次通过 Rancher Helm Chart Provisioner 部署。 我们也可以通过常规的/稳定的 Helm charts 来部署它。 它确实有助于我们监控和收集开发环境中诸如 CPU、内存利用率和 IO 操作之类的指标,并据此为 staging 环境和生产环境进行容量规划。\n我们还在集群上部署了 Zabbix Server,它用于为部署的所有节点监控各种操作系统级别的和应用程序特定的指标和警告。 这包括任何后端数据库集群节点、Kubernetes 节点、Rancher servers、文件服务器或通过 Terraform 提供的任何其他服务器。 Zabbix Server 被配置为节点/代理自动注册,以便通过自动缩放组或自动缩放器添加到集群中的任何新节点都可用于监控。\n结论 这是我们为 Kubernetes 工作负载构建完整的 CI/CD 工具链所遵循的方法之一。 这个模型帮助我们自动化所有的三个环境的准备。 通过 Rancher ,我们能够提供一个开发环境,每个开发人员都可以使用这个项目概念。 每个开发人员都有一个节点和一个项目,它由 RBAC 控制,这样他们就可以部署和测试他们自己的更改。 没有人可以看到项目/节点的详细信息,也不会妨碍其他开发人员部署的 Kubernetes 工作负载。 由于节点自动注册到 Rancher Server,系统重新启动不会影响节点的可用性。 即使在最坏的情况下,如果节点丢失,也很容易在几分钟内打开一个新节点。 应用程序可以使用 Helm charts 进行部署,也可以使用 Rancher 提供的内置的 Helm charts 进行部署。\n这些是我们部署的来管理整个环境的一些高级组件。 我们考虑的其他方面是高可用性集群环境,用于 Rancher servers、Kubernetes 集群、Gluster 文件服务器集群或任何其他后端集群。 在提出此方法时,需要考虑生产级环境所需的更改和更新。 还考虑了其他方面,例如对集群实例的安全访问、升级、备份和恢复,以及根据行业标准提出的分层体系结构建议。\n希望本文为您提供一些参考,当您计划为多个云提供商提供生产级环境准备时,可以考虑这些参考。\n",
"auhtor": "Ravi Sarma Kasibhatla",
"translator": "donhui",
"original": "https://dzone.com/articles/cloud-agnostic-automated-cicd-for-k8s",
"poster": "../../../images/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/blue.jpg"
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/",
"title": "19年 GSoC 中 Jenkins 的七个项目",
......@@ -809,7 +822,7 @@
"uri": "https://jenkins-zh.cn/tags/cd/",
"title": "Cd",
"type": "tags",
"date": "2019-04-30 00:00:00 +0000 UTC",
"date": "2019-05-16 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -861,7 +874,7 @@
"uri": "https://jenkins-zh.cn/tags/ci/",
"title": "Ci",
"type": "tags",
"date": "2019-04-30 00:00:00 +0000 UTC",
"date": "2019-05-16 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -1212,7 +1225,7 @@
"uri": "https://jenkins-zh.cn/",
"title": "Jenkins 中文社区",
"type": "page",
"date": "2019-05-15 00:00:00 +0000 UTC",
"date": "2019-05-16 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -1355,7 +1368,7 @@
"uri": "https://jenkins-zh.cn/tags/kubernetes/",
"title": "Kubernetes",
"type": "tags",
"date": "2019-04-26 00:00:00 +0000 UTC",
"date": "2019-05-16 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -1654,7 +1667,7 @@
"uri": "https://jenkins-zh.cn/wechat/",
"title": "Wechats",
"type": "wechat",
"date": "2019-05-15 00:00:00 +0000 UTC",
"date": "2019-05-16 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......
......@@ -6,7 +6,7 @@
<description>Recent content on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 15 May 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 16 May 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/index.xml" rel="self" type="application/rss+xml" />
......@@ -24,6 +24,21 @@
GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。</description>
</item>
<item>
<title>与云无关的用于 Kubernetes 的自动化 CI/CD </title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</link>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</guid>
<description>在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。
它的部署模型的核心是 Rancher,Rancher 负责为托管在不同云环境和裸机环境中的多个 Kubernetes 集群提供集中管理与运营的能力。 根据应用程序和业务需要,这里提到的工具可以替换为自己选择的工具。
在详细介绍之前,这里有张部署模型的快照:
持续集成组件 我们使用 JIRA、BitBucket、Bamboo 和 Nexus 作为自动化持续集成组件。 需求和用户故事来自 JIRA ; 开发人员将他们的代码放进 BitBucket ; 代码被代码评审工具和静态分析工具构建与集成,Bamboo 生成的 Docker 镜像被推送到 Nexus。 这些镜像会经过特定的容器安全检查。
当你有许多微服务/应用程序需要构建时,那么处理 Kubernetes 集群工作负载的部署、升级和回滚可能会复杂。 版本控制是我们需要考虑的另一个挑战。 Helm 有助于克服这些大多数挑战,并使部署变得简单。
如果你想知道你是否需要有一个 chart 将所有 deployments 包含在其中, 或者允许每个应用程序和微服务都有一个单独的 chart , 那么我们希望将这些 charts 放到特定的应用程序或微服务的仓库中, 这样我们就不需要有单独的仓库来维护 Helm 制品。 这就省去了为实际的代码和 Helm 模板维护两个独立仓库的工作。 开发人员可以对任何应用程序代码更改所需的模板更改有更多的控制权。
Nexus 作为 Docker 镜像和 Helm chart(使用的是 Helm Nexus 插件)的仓库。 每次成功构建应用程序后,镜像和 chart 都是可用的并被推送到 Nexus 。</description>
</item>
<item>
<title>19年 GSoC 中 Jenkins 的七个项目</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/</link>
......
......@@ -6,6 +6,11 @@
<loc>https://jenkins-zh.cn/about/code-of-conduct/</loc>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</loc>
<lastmod>2019-05-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/</loc>
<lastmod>2019-05-15T00:00:00+00:00</lastmod>
......@@ -295,7 +300,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/cd/</loc>
<lastmod>2019-04-30T00:00:00+00:00</lastmod>
<lastmod>2019-05-16T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -318,7 +323,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/ci/</loc>
<lastmod>2019-04-30T00:00:00+00:00</lastmod>
<lastmod>2019-05-16T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -468,7 +473,7 @@
<url>
<loc>https://jenkins-zh.cn/</loc>
<lastmod>2019-05-15T00:00:00+00:00</lastmod>
<lastmod>2019-05-16T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -521,7 +526,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/kubernetes/</loc>
<lastmod>2019-04-26T00:00:00+00:00</lastmod>
<lastmod>2019-05-16T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -651,7 +656,7 @@
<url>
<loc>https://jenkins-zh.cn/wechat/</loc>
<lastmod>2019-05-15T00:00:00+00:00</lastmod>
<lastmod>2019-05-16T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......
......@@ -35,7 +35,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/cd/" />
<meta property="og:updated_time" content="2019-04-30T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Cd">
<meta itemprop="description" content="">
......@@ -159,6 +159,8 @@
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
......
......@@ -6,11 +6,26 @@
<description>Recent content in Cd on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Tue, 30 Apr 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 16 May 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/cd/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>与云无关的用于 Kubernetes 的自动化 CI/CD </title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</link>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</guid>
<description>在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。
它的部署模型的核心是 Rancher,Rancher 负责为托管在不同云环境和裸机环境中的多个 Kubernetes 集群提供集中管理与运营的能力。 根据应用程序和业务需要,这里提到的工具可以替换为自己选择的工具。
在详细介绍之前,这里有张部署模型的快照:
持续集成组件 我们使用 JIRA、BitBucket、Bamboo 和 Nexus 作为自动化持续集成组件。 需求和用户故事来自 JIRA ; 开发人员将他们的代码放进 BitBucket ; 代码被代码评审工具和静态分析工具构建与集成,Bamboo 生成的 Docker 镜像被推送到 Nexus。 这些镜像会经过特定的容器安全检查。
当你有许多微服务/应用程序需要构建时,那么处理 Kubernetes 集群工作负载的部署、升级和回滚可能会复杂。 版本控制是我们需要考虑的另一个挑战。 Helm 有助于克服这些大多数挑战,并使部署变得简单。
如果你想知道你是否需要有一个 chart 将所有 deployments 包含在其中, 或者允许每个应用程序和微服务都有一个单独的 chart , 那么我们希望将这些 charts 放到特定的应用程序或微服务的仓库中, 这样我们就不需要有单独的仓库来维护 Helm 制品。 这就省去了为实际的代码和 Helm 模板维护两个独立仓库的工作。 开发人员可以对任何应用程序代码更改所需的模板更改有更多的控制权。
Nexus 作为 Docker 镜像和 Helm chart(使用的是 Helm Nexus 插件)的仓库。 每次成功构建应用程序后,镜像和 chart 都是可用的并被推送到 Nexus 。</description>
</item>
<item>
<title>应该使用什么 CI/CD 工具?</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/</link>
......
......@@ -35,7 +35,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/ci/" />
<meta property="og:updated_time" content="2019-04-30T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Ci">
<meta itemprop="description" content="">
......@@ -159,6 +159,8 @@
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
......
......@@ -6,11 +6,26 @@
<description>Recent content in Ci on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Tue, 30 Apr 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 16 May 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/ci/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>与云无关的用于 Kubernetes 的自动化 CI/CD </title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</link>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</guid>
<description>在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。
它的部署模型的核心是 Rancher,Rancher 负责为托管在不同云环境和裸机环境中的多个 Kubernetes 集群提供集中管理与运营的能力。 根据应用程序和业务需要,这里提到的工具可以替换为自己选择的工具。
在详细介绍之前,这里有张部署模型的快照:
持续集成组件 我们使用 JIRA、BitBucket、Bamboo 和 Nexus 作为自动化持续集成组件。 需求和用户故事来自 JIRA ; 开发人员将他们的代码放进 BitBucket ; 代码被代码评审工具和静态分析工具构建与集成,Bamboo 生成的 Docker 镜像被推送到 Nexus。 这些镜像会经过特定的容器安全检查。
当你有许多微服务/应用程序需要构建时,那么处理 Kubernetes 集群工作负载的部署、升级和回滚可能会复杂。 版本控制是我们需要考虑的另一个挑战。 Helm 有助于克服这些大多数挑战,并使部署变得简单。
如果你想知道你是否需要有一个 chart 将所有 deployments 包含在其中, 或者允许每个应用程序和微服务都有一个单独的 chart , 那么我们希望将这些 charts 放到特定的应用程序或微服务的仓库中, 这样我们就不需要有单独的仓库来维护 Helm 制品。 这就省去了为实际的代码和 Helm 模板维护两个独立仓库的工作。 开发人员可以对任何应用程序代码更改所需的模板更改有更多的控制权。
Nexus 作为 Docker 镜像和 Helm chart(使用的是 Helm Nexus 插件)的仓库。 每次成功构建应用程序后,镜像和 chart 都是可用的并被推送到 Nexus 。</description>
</item>
<item>
<title>应该使用什么 CI/CD 工具?</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/</link>
......
......@@ -202,6 +202,12 @@
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link blue">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link blue">
应该使用什么 CI/CD 工具?
......@@ -302,6 +308,12 @@
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link blue">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link blue">
应该使用什么 CI/CD 工具?
......@@ -1062,6 +1074,12 @@
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link blue">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-26-progressive-delivery-with-jenkins-x/" class="link blue">
使用 Jenkins X 渐进式交付
......
......@@ -32,7 +32,7 @@
<item>
<title>Cd</title>
<link>https://jenkins-zh.cn/tags/cd/</link>
<pubDate>Tue, 30 Apr 2019 00:00:00 +0000</pubDate>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/cd/</guid>
<description></description>
......@@ -68,7 +68,7 @@
<item>
<title>Ci</title>
<link>https://jenkins-zh.cn/tags/ci/</link>
<pubDate>Tue, 30 Apr 2019 00:00:00 +0000</pubDate>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/ci/</guid>
<description></description>
......@@ -320,7 +320,7 @@
<item>
<title>Kubernetes</title>
<link>https://jenkins-zh.cn/tags/kubernetes/</link>
<pubDate>Fri, 26 Apr 2019 00:00:00 +0000</pubDate>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/kubernetes/</guid>
<description></description>
......
......@@ -35,7 +35,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/kubernetes/" />
<meta property="og:updated_time" content="2019-04-26T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Kubernetes">
<meta itemprop="description" content="">
......@@ -159,6 +159,8 @@
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
......
......@@ -6,11 +6,26 @@
<description>Recent content in Kubernetes on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Fri, 26 Apr 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 16 May 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>与云无关的用于 Kubernetes 的自动化 CI/CD </title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</link>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</guid>
<description>在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。
它的部署模型的核心是 Rancher,Rancher 负责为托管在不同云环境和裸机环境中的多个 Kubernetes 集群提供集中管理与运营的能力。 根据应用程序和业务需要,这里提到的工具可以替换为自己选择的工具。
在详细介绍之前,这里有张部署模型的快照:
持续集成组件 我们使用 JIRA、BitBucket、Bamboo 和 Nexus 作为自动化持续集成组件。 需求和用户故事来自 JIRA ; 开发人员将他们的代码放进 BitBucket ; 代码被代码评审工具和静态分析工具构建与集成,Bamboo 生成的 Docker 镜像被推送到 Nexus。 这些镜像会经过特定的容器安全检查。
当你有许多微服务/应用程序需要构建时,那么处理 Kubernetes 集群工作负载的部署、升级和回滚可能会复杂。 版本控制是我们需要考虑的另一个挑战。 Helm 有助于克服这些大多数挑战,并使部署变得简单。
如果你想知道你是否需要有一个 chart 将所有 deployments 包含在其中, 或者允许每个应用程序和微服务都有一个单独的 chart , 那么我们希望将这些 charts 放到特定的应用程序或微服务的仓库中, 这样我们就不需要有单独的仓库来维护 Helm 制品。 这就省去了为实际的代码和 Helm 模板维护两个独立仓库的工作。 开发人员可以对任何应用程序代码更改所需的模板更改有更多的控制权。
Nexus 作为 Docker 镜像和 Helm chart(使用的是 Helm Nexus 插件)的仓库。 每次成功构建应用程序后,镜像和 chart 都是可用的并被推送到 Nexus 。</description>
</item>
<item>
<title>使用 Jenkins X 渐进式交付</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-26-progressive-delivery-with-jenkins-x/</link>
......
......@@ -422,8 +422,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link">
应该使用什么 CI/CD 工具?
<a href="/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</li>
......@@ -434,6 +434,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link">
应该使用什么 CI/CD 工具?
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-19-the-business-value-of-cd/" class="link">
持续交付的商业价值
......
......@@ -419,8 +419,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link">
应该使用什么 CI/CD 工具?
<a href="/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</li>
......@@ -431,6 +431,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link">
应该使用什么 CI/CD 工具?
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-10-getting-started-with-docker-for-java-applications/" class="link">
Java 应用使用 Docker 的入门指南:建立一个 CI/CD 流水线
......
......@@ -368,8 +368,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link">
应该使用什么 CI/CD 工具?
<a href="/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</li>
......@@ -380,6 +380,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link">
应该使用什么 CI/CD 工具?
</a>
</li>
......
......@@ -405,6 +405,12 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link">
与云无关的用于 Kubernetes 的自动化 CI/CD
</a>
</li>
<li class="db b mt4 mb2 mr2">
......@@ -412,6 +418,9 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/04/2019-04-10-getting-started-with-docker-for-java-applications/" class="link">
Java 应用使用 Docker 的入门指南:建立一个 CI/CD 流水线
......
......@@ -187,6 +187,14 @@
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="dib f6 pl1 hover-bg-light-gray br-100" title="与云无关的用于 Kubernetes 的自动化 CI/CD ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/" class="dib f6 pr1 hover-bg-light-gray br-100" title="基于 Jenkins 的 DevOps 平台应该如何设计凭证管理">
......
......@@ -35,7 +35,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-05-15T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -159,6 +159,8 @@
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
......@@ -401,33 +403,6 @@
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/" class="link primary-color dim">使用 Jenkins X 渐进式交付:自动化金丝雀部署</a>
</h1>
<div class="lh-copy links">
为了避免渐进式交付可能带来的麻烦,学习使用 Jenkins X 为金丝雀发布自动部署。
<a href="/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......@@ -505,7 +480,16 @@
<li class="page-item"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item">
......@@ -513,7 +497,7 @@
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
......
......@@ -6,11 +6,26 @@
<description>Recent content in Wechats on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 15 May 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 16 May 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/wechat/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>与云无关的用于 Kubernetes 的自动化 CI/CD </title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</link>
<pubDate>Thu, 16 May 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/04/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/</guid>
<description>在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。
它的部署模型的核心是 Rancher,Rancher 负责为托管在不同云环境和裸机环境中的多个 Kubernetes 集群提供集中管理与运营的能力。 根据应用程序和业务需要,这里提到的工具可以替换为自己选择的工具。
在详细介绍之前,这里有张部署模型的快照:
持续集成组件 我们使用 JIRA、BitBucket、Bamboo 和 Nexus 作为自动化持续集成组件。 需求和用户故事来自 JIRA ; 开发人员将他们的代码放进 BitBucket ; 代码被代码评审工具和静态分析工具构建与集成,Bamboo 生成的 Docker 镜像被推送到 Nexus。 这些镜像会经过特定的容器安全检查。
当你有许多微服务/应用程序需要构建时,那么处理 Kubernetes 集群工作负载的部署、升级和回滚可能会复杂。 版本控制是我们需要考虑的另一个挑战。 Helm 有助于克服这些大多数挑战,并使部署变得简单。
如果你想知道你是否需要有一个 chart 将所有 deployments 包含在其中, 或者允许每个应用程序和微服务都有一个单独的 chart , 那么我们希望将这些 charts 放到特定的应用程序或微服务的仓库中, 这样我们就不需要有单独的仓库来维护 Helm 制品。 这就省去了为实际的代码和 Helm 模板维护两个独立仓库的工作。 开发人员可以对任何应用程序代码更改所需的模板更改有更多的控制权。
Nexus 作为 Docker 镜像和 Helm chart(使用的是 Helm Nexus 插件)的仓库。 每次成功构建应用程序后,镜像和 chart 都是可用的并被推送到 Nexus 。</description>
</item>
<item>
<title>19年 GSoC 中 Jenkins 的七个项目</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/</link>
......
......@@ -35,7 +35,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-04-28T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-04-29T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -164,6 +164,33 @@
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/" class="link primary-color dim">使用 Jenkins X 渐进式交付:自动化金丝雀部署</a>
</h1>
<div class="lh-copy links">
为了避免渐进式交付可能带来的麻烦,学习使用 Jenkins X 为金丝雀发布自动部署。
<a href="/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-28-devsecops/" class="link primary-color dim">我们为什么需要 DevSecOps 和制品仓库?</a>
</h1>
......@@ -401,33 +428,6 @@
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/" class="link primary-color dim">简析 Jenkins 专有用户数据库加密算法</a>
</h1>
<div class="lh-copy links">
本文对 Jenkins 专有用户数据库加密算法进行简要分析
<a href="/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......@@ -505,7 +505,16 @@
<li class="page-item"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item">
......@@ -513,7 +522,7 @@
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
......
......@@ -35,7 +35,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-04-10T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-04-12T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -164,6 +164,33 @@
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/" class="link primary-color dim">简析 Jenkins 专有用户数据库加密算法</a>
</h1>
<div class="lh-copy links">
本文对 Jenkins 专有用户数据库加密算法进行简要分析
<a href="/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-10-getting-started-with-docker-for-java-applications/" class="link primary-color dim">Java 应用使用 Docker 的入门指南:建立一个 CI/CD 流水线</a>
</h1>
......@@ -401,33 +428,6 @@
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/" class="link primary-color dim">批量修改 Jenkins 任务的技巧</a>
</h1>
<div class="lh-copy links">
Jenkins 脚本命令行的一种实践
<a href="/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......@@ -507,7 +507,16 @@
<li class="page-item"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item">
......@@ -515,7 +524,7 @@
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
......
......@@ -164,6 +164,33 @@
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/" class="link primary-color dim">批量修改 Jenkins 任务的技巧</a>
</h1>
<div class="lh-copy links">
Jenkins 脚本命令行的一种实践
<a href="/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/02/2019-02-27-contribution-inspire/" class="link primary-color dim">社区贡献激励活动</a>
</h1>
......@@ -416,33 +443,6 @@ TODO List Pick up a task from here, if you&rsquo;re interesting in contribution.
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/management/menus/readme/" class="link primary-color dim"></a>
</h1>
<div class="lh-copy links">
这里存存放菜单信息。
<a href="/wechat/management/menus/readme/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......@@ -522,7 +522,18 @@ TODO List Pick up a task from here, if you&rsquo;re interesting in contribution.
<li class="page-item"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item disabled"><span aria-hidden="true">&nbsp;&hellip;&nbsp;</span></li>
<li class="page-item"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item">
......@@ -530,7 +541,7 @@ TODO List Pick up a task from here, if you&rsquo;re interesting in contribution.
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
......
......@@ -163,6 +163,33 @@
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/management/menus/readme/" class="link primary-color dim"></a>
</h1>
<div class="lh-copy links">
这里存存放菜单信息。
<a href="/wechat/management/menus/readme/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/management/operators/readme.en/" class="link primary-color dim"></a>
</h1>
......@@ -416,33 +443,6 @@ Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2018/11/2018-11-14-first-voice/" class="link primary-color dim">Jenkins 微信订阅号</a>
</h1>
<div class="lh-copy links">
来自 Jenkins 官方的消息
<a href="/wechat/articles/2018/11/2018-11-14-first-voice/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......@@ -525,12 +525,23 @@ Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同
<li class="page-item"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
......
......@@ -163,6 +163,33 @@
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2018/11/2018-11-14-first-voice/" class="link primary-color dim">Jenkins 微信订阅号</a>
</h1>
<div class="lh-copy links">
来自 Jenkins 官方的消息
<a href="/wechat/articles/2018/11/2018-11-14-first-voice/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2018/12/2018-12-26-security-updates/" class="link primary-color dim">Jenkins 的重要安全更新</a>
</h1>
......@@ -400,33 +427,6 @@
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-09-jenkins-evergreen/" class="link primary-color dim">自动更新、易于使用的 Jenkins</a>
</h1>
<div class="lh-copy links">
借助 Evergreen 持续提供易于使用的 Jenkins
<a href="/wechat/articles/2019/01/2019-01-09-jenkins-evergreen/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......@@ -509,12 +509,23 @@
<li class="page-item active"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item disabled">
<a href="" class="page-link" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
<li class="page-item"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item">
<a href="/wechat/page/7/" class="page-link" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
......
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Wechats | Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="共建开放、包容、活跃的 Jenkins 社区">
<meta name="keywords" content="Jenkins,Jenkins中文社区,Jenkins官方公众号,持续集成,持续交付,开源社区,DevOps">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.54.0" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkins-zh.cn/wechat/index.xml">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><script src="/js/chart.js"></script>
<style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="Wechats" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Wechats"/>
<meta name="twitter:description" content=""/>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link gray "
>
微信
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link light-silver"
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
Wechats
</h1>
<div class=" mid-gray f5 f4-l">
</div>
</article>
<div class="flex flex-wrap">
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-09-jenkins-evergreen/" class="link primary-color dim">自动更新、易于使用的 Jenkins</a>
</h1>
<div class="lh-copy links">
借助 Evergreen 持续提供易于使用的 Jenkins
<a href="/wechat/articles/2019/01/2019-01-09-jenkins-evergreen/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
<ul class="pagination">
<li class="page-item">
<a href="/wechat/" class="page-link" aria-label="First"><span aria-hidden="true">&laquo;&laquo;</span></a>
</li>
<li class="page-item">
<a href="/wechat/page/6/" class="page-link" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a>
</li>
<li class="page-item"><a class="page-link" href="/wechat/">1</a></li>
<li class="page-item"><a class="page-link" href="/wechat/page/2/">2</a></li>
<li class="page-item"><a class="page-link" href="/wechat/page/3/">3</a></li>
<li class="page-item disabled"><span aria-hidden="true">&nbsp;&hellip;&nbsp;</span></li>
<li class="page-item"><a class="page-link" href="/wechat/page/6/">6</a></li>
<li class="page-item active"><a class="page-link" href="/wechat/page/7/">7</a></li>
<li class="page-item disabled">
<a href="" class="page-link" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
</li>
<li class="page-item">
<a href="/wechat/page/7/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
</div>
</div>
</div>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank" class="link">Jenkins 社区贡献者</a> 维护<br/>
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/suren69811254" target="_blank" class="dim link light-gray pv2">@suren69811254</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank" class="dim link light-gray pv2">YouTube</a>
</li>
</ul>
</div>
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100" style="display:none"> 
<p class="dib mr4">Jenkins&reg; is a registered trademark of <a href="https://www.spi-inc.org/" class="link">Software in the Public Interest, Inc.</a></p>
<p class="dib">Copyright 2018–2019 the original authors.</p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
微信
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="docsmenu mobilemenu pb3 dn">
<ul class="list dib ph0 ma0 scrolling-touch tc">
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">Menu</button>
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".docsmenu">Docs Menu</button>
</div>
</div>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
</body>
</html>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册