文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

这个入门指南的目标是帮助团队配置Jenkins持续集成(CI)服务器和使一个新部署的CI基础设施全面运作。Jenkins 是一个领先的开源CI服务器。它很灵活,提供了数百个支持构建、测试和部署的插件,并能够自动化任何项目。Jenkins CI基础设施可以部署在on-prem云,并支持在云使用配置管理工具和第三方组件。为了更好地理解这篇文章,让我们假设我们的Jenkins CI服务器部署在云上,并且我们的关注点在于Jenkins的网络接口的配置。我将带你们走通各过程和步骤,建立一个可应用于生产的新的Jenkins CI服务器。

第 1 段(可获 1.51 积分)

CI架构的推荐最佳实践

别在没有计划、设计和建立CI架构的情况下一头跳入配置和创建管道。花点时间先想一下你的架构,这会使你的架构更加稳定和容易恢复。让我们回顾一些推荐的最佳实践来考虑你未来的CI管道设计。

备份CI服务器(故障保险)

这似乎是显而易见的,但我推荐为Jenkins配置建立一个备份。用脚本写一个Jenkins任务,就可以使用thinBackup插件或S3插件来发送Jenkins配置到一个亚马逊S3 (云存储)。

第 2 段(可获 1.25 积分)

管道配置

下面是一些推荐考虑的细节:

  • 设置环境变量 (例如隐藏的密码,SSH键,API键等)

  • 安全性–创建通用并且可重用的任务和命名约定 (例如工作和环境变量)

  • 任务规模小–允许从节点自动伸缩的模块化的、可扩展的基础设施

插件的发现

使用插件时要保守一点。以我的经验来说,插件总是在更改,并且变得脆弱。 为了更好地运用发现模式发现合适你的CI基础设施的插件,我推荐你先评估一下,比起依赖第三方插件,是否可以用脚本写出同样的功能。尽量减少插件的使用。有一个升级过程是很重要的。不要在活动的用于生产的CI服务器测试升级。 在应用一个更改到你的产品服务器前,设置一个测试环境,使用现存的任务来检查所有新的插件或者新的Jenkins版本。

第 3 段(可获 1.79 积分)

配置管理工具

我很建议你使用一个配置管理工具来自动化配置过程,以获得更快的速度、规模、可重复性和一致性。我推荐使用ScalrChef作为解决方案。

存储库

考虑为版本控制存储库创建GitHub webhooks。我推荐为CI组件使用Artifactory (云存储) 。

建立Jenkins主服务器的基础知识

在指南的这一部分,我会带你走通一些步骤来建立和管理Jenkins。

发现,安装和管理插件

Jenkins有数百个有用的插件。插件消除了需要创建定制脚本的麻烦,使我们能够以最小的成本解决常见的问题。但要记住插件经常更改和变得脆弱。如果可能的话,尽量减少你对插件的使用。

第 4 段(可获 1.46 积分)

步骤

  1. 导航到Jenkins Web界面 > 用Admin登陆 > Manage Jenkins > Manage Plugins > Available (Tab)
  2. 勾选你想安装的插件。
  3. 勾选页面底部的“download now and install after restart”。
  4. Jenkins完成重启后,已安装的插件会出现在Manage Plugins > Installed (Tab)的下面。

下面是一些推荐的Jenkins插件:

  • Git:允许你集成GitHub来克隆存储库。
  • GitHub Pull Request Builder:在GitHub创建pull requests,并报告结果。
  • Swarm:启用从节点自动发现附近的Jenkins主节点,并自动加入集群。 
  • Sauce OnDemand:允许你集成Sauce Labs Selenium来测试Jenkins.
  • Pipeline:让你能够编排简单或复杂的自动化的一套组件。
  • Slack:允许上传构建通知到Slack通道。
  • Thinbackup: 备份全局的和基于工作的具体配置。
第 5 段(可获 1.71 积分)

配置系统设置

作为Jenkins的一名管理员,Configure System页面是一个重要的配置部分。 这个页面包括很多节,每节都关联到通用的Jenkins设置和全局变量定义的不同配置区域。大多数已安装的插件都在这个页面上进行配置。

步骤

  1. 导航到Jenkins Web界面> 作为管理员登陆 > Manage Jenkins > Configure System。
  2. 配置workspace和构建记录的根目录。
  3. 设置Jenkins主节点执行线程(executors)为0,给工作线程(workers)建立单独的云实例;Jenkins 组节点只充当工作安排者。 
  4. 设置环境变量(例如SLACK_TOKEN、SAUCE_API_KEY)。
  5. 配置已安装的插件(例如GitHub、Sauce Labs、Slack等)。这通常需要添加API密钥或被共享的机密信息。
第 6 段(可获 1.58 积分)

配置全局设置

默认地,在有管理员许可的情况下,Jenkins允许任何人作为一个Jenkins用户运行任何东西,这是不好的。我建议你启用轻量级目录访问协议 (LDAP),这个协议允许你使用企业服务。多个用户可以用他们公司通用的登录凭据登录到Jenkins 。

步骤

  1. 导航到Jenkins Web界面> 作为管理员登陆 > Manage Jenkins > Configure Global Security。
  2. 勾选启用安全选项。
  3. 为JNLP从节点代理设置TCP端口为9000。
  4. 在Access Control (Security Realm) 一节选择LDAP,并输入你的LDAP服务器地址:
  5. 在Access Control (Authorization) 一节选择matrix-based security。
  6. 在Master Access Control一节勾选Prevent Cross Site Request Forgery Exploits和Enable Slave。
第 7 段(可获 1.53 积分)

添加节点(从节点)

添加和配置从节点farm有很多种方式。一个构建、测试或部署任务在任何情况下都必须在从节点上运行。创建多个从节点的过程很简单直接。

写在前面 – 我们在Scalr上用Jenkins主节点服务器和至少一个用于构建和测试应用程序的从节点创建了一个farm。我们使用Swarm插件来使从节点自动发现一个附近的Jenkins主节点和自动加入集群。你同样可以手动运行一个curl命令添加从节点给给Jenkins主节点。你觉得这说得不清楚,对吧?对门外汉而言,一个从节点是一个被设置用来克隆源码、编译、执行测试或需要的工具的机器。最后,构建结果被存储到Jenkins主节点,组件(artifacts )最终总是放在组件仓库(例如Artifactory )里面,而不在Jenkins主节点上。

第 8 段(可获 2.01 积分)

步骤

  1. 检查新节点是否在线(ONLINE)。
  2. 导航到Jenkins Web界面> Login as Admin > Manage Jenkins > Manage Nodes

Jenkins是一个为管理员提供了很大程度的控制的非常灵活的应用。显而易见的是,通过访问Jenkins管理员页面,虽然我们只涉及了表面,但已经为继续学习如何建立和管理Jenkins奠定了坚实的基础。

你可以行动了! 准备创建一个CI管道吧

现在,Jenkins已经配置好了,你已经可以准备编排或者维护一个CI管道。我推荐你参照Jenkins 文档 Getting Started with Pipeline 来创建和部署你的第一个CI管道。

第 9 段(可获 1.39 积分)

jenkins9a
来源: https://jenkins.io/images/pipeline/realworld-pipeline-flow.png

总结

这篇文章的目的在于找出建立Jenkins主节点和从节点架构的主要设置和推荐的最佳实践,为参与到CI架构提供激励和便利,并且划分构建、部署或测试失败的责任,以便可以实施操作规范。 

Source: Cloudbees

来源: CloudBees

Greg Sypolt (@gregsypolt) 是Gannett – USA Today Network的高级工程师 ,也是Quality Element的联合创始人。他是一个寻求提高软件开发质量的充满激情的自动化工程师,他指导团队成员如何编写自动化脚本和帮助测试社区的参与者成为更好的测试人员。Greg的大部分职业生涯都投入到软件质量上—专注于web浏览器、API、和移动端的软件质量。过去5年多,他一直专注于自动化测试的创建和部署策略、框架、工具、平台和持续集成。

第 10 段(可获 1.88 积分)

文章评论