欢迎访问深圳敏捷云计算科技有限公司!

在甲骨文云基础设施上使用Terraform部署容器化Jenkins CI/CD管道:云端自动化的革新之旅

2024-01-15 原创文章

软件的快速交付对于在云中高效运行您的应用程序至关重要。Jenkins是一款流行的产品,用于自动化在Oracle Cloud中工作负载的持续集成和持续部署(CI/CD)管道。您可以在Oracle Cloud Infrastructure(OCI)上托管Jenkins,以集中构建自动化并随着软件项目的增长扩展您的部署。

架构

此参考架构展示了如何使用Terraform在单个Oracle Linux VM上部署容器化的Jenkins控制器代理。部署后,将创建一个Oracle Linux计算实例。此实例将在其上托管两个独立的Docker容器:一个用于Jenkins控制器,另一个用于Jenkins代理。

该解决方案还将控制器配置和代理工作空间保存在OCI块存储中,该存储连接到计算实例。在OCI上将创建一个单独的VCN来托管部署中的所有服务。

以下图表说明了这一参考架构。


此架构具有以下组件:

区域

Oracle Cloud Infrastructure区域是一个地理区域,包含一个或多个数据中心,称为可用性域。区域彼此独立,并且可能相距甚远(跨越国家甚至大洲)。

分区

分区是Oracle Cloud Infrastructure租户内的跨区域逻辑分区。使用分区来组织您在Oracle Cloud中的资源,控制对资源的访问,并设置使用配额。要控制对特定分区中资源的访问,您需要定义策略,指定谁可以访问这些资源以及他们可以执行哪些操作。

可用性域

可用性域是区域内独立的、独立的数据中心。每个可用性域内的物理资源与其他可用性域的资源隔离,从而提供故障容忍性。可用性域不共享基础设施,如电力或冷却,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该区域内的其他可用性域。

虚拟云网络(VCN)和子网

VCN是在Oracle Cloud Infrastructure区域中设置的可定制的、软件定义的网络。与传统数据中心网络一样,VCN让您完全控制您的网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改这些块。您可以将VCN分割为子网,这些子网可以限定在一个区域或一个可用性域。每个子网由不与VCN中其他子网重叠的连续地址范围组成。创建后您可以更改子网的大小。子网可以是公共的或私有的。

计算实例

Jenkins部署在一个计算实例VM上,运行两个容器,一个作为控制器,另一个作为代理。

路由表

虚拟路由表包含将流量从子网路由到VCN外部目的地的规则,通常通过网关。

安全列表

对于每个子网,您可以创建安全规则,指定必须允许进出子网的流量的来源、目的地和类型。

Jenkins

Jenkins是一个开源自动化服务器,让开发人员可靠地构建、测试和部署软件。Jenkins支持主/代理模式,其中构建项目的工作负载由主节点委派给多个代理节点。单个Jenkins安装可以托管多个项目或为构建和测试提供不同的环境。

块存储

使用块存储卷,您可以创建、连接、连接和移动存储卷,并更改卷性能以满足您的存储、性能和应用程序要求。在您连接并连接卷到实例后,您可以像使用普通硬盘一样使用该卷。您还可以断开卷并将其连接到另一个实例,而不会丢失数据。这将用于保存Jenkins控制器配置和代理工作空间。

建议

在使用Terraform在OCI上部署容器化Jenkins CI/CD管道时,以下建议可作为起点。您的需求可能与此处描述的架构不同。

VCN

  • 创建VCN时,根据您计划连接到VCN中子网的资源数量,确定所需CIDR块的数量和每个块的大小。使用标准私有IP地址空间内的CIDR块。
  • 选择不与您打算建立私有连接的任何其他网络(在Oracle Cloud Infrastructure、您的本地数据中心或其他云提供商)重叠的CIDR块。
  • 创建VCN后,您可以更改、添加和移除其CIDR块。
  • 在设计子网时,考虑您的流量流和安全需求。将特定层或角色内的所有资源连接到同一子网,这可以作为一个安全边界。
  • 使用区域子网。

安全

  • 使用Oracle Cloud Guard主动监控和维护您在OCI中的资源的安全。Cloud Guard使用您可以定义的检测器配方来检查您的资源是否存在安全弱点,并监控操作员和用户是否有风险活动。当检测到任何配置错误或不安全活动时,Cloud Guard会推荐纠正措施,并基于您可以定义的响应器配方协助采取这些措施。
  • 对于需要最高安全级别的资源,Oracle建议您使用安全区域。安全区域是与基于最佳实践的Oracle定义的安全策略配方相关联的分区。例如,安全区域中的资源不得从公共互联网访问,并且必须使用客户管理的密钥进行加密。在安全区域中创建和更新资源时,OCI会根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

Cloud Guard

  • 克隆并自定义Oracle提供的默认配方,以创建自定义的检测器和响应器配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能希望检测将可见性设置为公共的对象存储桶。
  • 在租户级别应用Cloud Guard,以覆盖最广泛的范围,并减少维护多种配置的管理负担。
  • 您还可以使用“管理列表”功能将某些配置应用于检测器。

安全列表

  • 使用安全列表定义适用于整个子网的入站和出站规则。

部署考虑因素

性能:在部署此参考架构时,请考虑以下几点。

安全性:为获得最佳性能,请确保计算实例具有足够的核心和内存,这取决于Jenkins运行的构建或其他任务。

可用性:使用策略限制谁可以访问您公司的OCI资源以及如何访问。

成本:这是一个最小化设计,旨在尽快让您开始运行。若需更高的可用性,您可以参考“探索更多”主题下的参考架构“以控制器/代理模式部署Jenkins”。

此实施方案的成本基于运行VM的计算小时数。

部署

使用Terraform在OCI上部署容器化Jenkins CI/CD管道的Terraform代码可从Oracle Cloud Infrastructure资源管理器或GitHub获取。

使用Oracle Cloud Infrastructure资源管理器中的示例堆栈部署:

  1. 点击,如果您尚未登录,请输入租户和用户凭据。

2.选择您想要部署堆栈的区域。

3.按照屏幕上的提示和说明创建堆栈。

4.创建堆栈后,点击Terraform操作,并选择计划。

5.等待作业完成并查看计划。 若要进行任何更改,请返回到堆栈详细信息页面,点击编辑堆栈,并进行必要的更改。然后,再次运行计划操作。

6.如果不需要进一步更改,请返回到堆栈详细信息页面,点击Terraform操作,并选择应用。

使用Terraform CLI部署:

  1. 访问GitHub。
  2. 克隆或下载存储库到您的本地计算机。
  3. 按照README文档中的说明进行操作。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: