亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 云计算

在裸机云上使用 Terraform 的基础架构即代码

基础架构即代码 (IaC) 简化了管理虚拟化云资源的过程。随着云原生专用服务器的引入,现在可以部署具有同等灵活性的物理机。

phoenixNAP 的云原生专用服务器平台 Bare Metal Cloud (BMC) 在设计时考虑了 IaC 兼容性。 BMC 与 HashiCorp Terraform 完全集成,HashiCorp Terraform 是 DevOps 中使用最广泛的 IaC 工具之一。这种集成允许用户利用定制的 Terraform 提供程序在几分钟内部署 BMC 服务器,只需几行代码。

为什么选择基础设施即代码?

基础架构即代码是一种通过人类可读的配置文件自动部署和管理云资源的方法。它在速度和敏捷性至关重要的 DevOps 中发挥着关键作用。

在 IaC 之前,系统管理员手动部署所有内容。每个服务器、数据库、负载平衡器或网络都必须手动配置。团队现在利用各种 IaC 引擎在几分钟内启动或关闭多个提供商的数百台服务器。

虽然市场上有许多强大的 IaC 工具,但 Terraform 是 IaC 领域最杰出的参与者之一。

Terraform 基础

HashiCorp 的 Terraform 是一种基础架构即代码引擎,允许 DevOps 团队安全地部署、修改和版本化云原生资源。它的开源工具可以免费使用,但大多数团队选择将它与 Terraform Cloud 或 Terraform Enterprise 一起使用,从而实现协作和治理。

要使用 Terraform 进行部署,开发人员在配置文件中定义所需的资源,该文件是用 HashiCorp 配置语言 (HCL) 编写的。 Terraform 然后分析该文件以创建执行计划。一旦得到用户确认,它就会执行计划以精确地提供配置文件中定义的内容。

Terraform 可识别基础设施的所需状态与现有状态之间的差异。这种机制在 DevOps 管道中起着至关重要的作用,其中保持跨多个环境的一致性至关重要。

使用 Terraform 部署裸机云服务器

Terraform 维护着越来越多的支持其软件的供应商。 Providers 是来自不同服务提供者的定制插件,用户在他们的配置文件中初始化。

phoenixNAP 有自己的 Terraform 提供程序——pnap。任何 Bare Metal Cloud 用户都可以使用它来部署和管理 BMC 服务器,而无需使用基于 Web 的 Bare Metal Cloud Portal。 phoenixNAP 提供程序和文档的源代码可在官方 Terraform 提供程序页面上找到。

Bare Metal Cloud 的 Terraform 示例使用

要开始使用 Terraform 部署 BMC 服务器,请创建一个 BMC 帐户,然后在本地系统或远程服务器上安装 Terraform。在运行 Terraform 之前,收集必要的身份验证数据并将其存储在 config.yaml 文件。你需要 clientId clientSecret ,两者都可以在您的 BMC 帐户中找到。

一切设置好后,开始定义所需的 BMC 资源。为此,请创建一个 Terraform 配置文件并声明您要使用 pnap 提供程序

terraform {
  required_providers {
    pnap = {
          source = "phoenixnap/pnap"
          version = "0.6.0"
    }
  }
}

provider "pnap" {
  # Configuration options
}

configuration options 保留的部分 应包含对 BMC 基础架构所需状态的描述。

要部署最基本的裸金属云服务器配置,s1.c1.small , 在 Phoenix 数据中心使用 Ubuntu 操作系统:

resource "pnap_server" "My-First-BMC-Server" {
    hostname = "your-hostname"
    os = "ubuntu/bionic"
    type = "s1.c1.small"
    location = "PHX"
    ssh_keys = [
       "ssh-rsa..."
    ]
    #action = "powered-on"
}

参数名称 action 表示可以在服务器上执行的电源操作,包括重启、重置、开​​机、关机、关机。虽然所有参数名称都必须包含相应的值,但操作参数不需要定义。

要部署此 Bare Metal Cloud 实例,请运行 terraform init 用于指示 Terraform 开始初始化过程的 CLI 命令。

您的 Terraform 配置应存储在带有 .tf 的文件中 扩大。虽然 Terraform 使用特定领域的语言来定义配置,但用户也可以用 JSON 编写配置文件。在这种情况下,文件扩展名需要是 .tf.json .

所有 Terraform 配置文件都是可重复使用的 , 可扩展 ,并且可以版本化 便于团队在 BMC 供应方案上进行协作。

无论您需要部署一台还是数百台服务器,Terraform 和 BMC 都能实现。您可以在配置文件中定义的服务器数量没有限制。除了 phoenixNAP,您还可以使用其他提供程序。

为了更轻松地管理复杂的设置,Terraform 有一个名为 modules 的功能 — 允许您以抽象方式定义环境架构的容器。模块是可重用的代码块,可以调用包含一个或多个基础设施对象的其他模块。

与 Terraform Cloud 协作 BMC 配置

一旦您学会了如何编写和配置 Terraform 配置,您将需要设置一种方法,让您的整个 DevOps 团队能够更有效地部署新的和修改现有的 BMC 资源。

您可以将 Terraform 配置存储在版本控制系统中,并免费从 Terraform Cloud 远程运行它们。这可以帮助您减少部署错误配置资源的机会,改善监督,并确保从云端可靠地执行每项更改。

您还可以利用 Terraform Cloud 的远程状态存储。 Terraform 状态文件将 Terraform 配置映射到现实世界中部署的资源。使用 Terraform Cloud 存储状态文件可确保您的团队始终保持一致。

Terraform 的另一个巨大优势是所有配置文件都是可重用的。这使得多次复制相同的环境变得非常容易。通过在多个环境中保持一致性,团队可以更快、更安全地将优质代码交付到生产环境中。

自动化您的基础架构

本文概述了如何利用 Terraform 的灵活性以编程方式与裸金属云资源进行交互。通过使用 phoenixNAP Terraform 提供程序和 Terraform Cloud,您只需几行代码即可快速部署、配置和停用多个 BMC 实例。

这种基础设施配置的自动化方法提高了 DevOps 工作流程的速度和敏捷性。 BMC 与 Terraform Cloud 相结合,让团队可以专注于构建软件,而不是浪费时间等待手动配置专用服务器。


云计算

  1. 使用 Perf 分析分布式应用程序
  2. 构建您的云基础设施以提高性能、效率
  3. 为什么 IT 专业人员需要地图制作技能
  4. 本地基础设施是否过时?
  5. 每周数据包:多云,有创新机会
  6. 基础设施即代码的优缺点
  7. 将云与 DevOps 服务结合使用的好处
  8. 代码就绪容器:云端流程自动化工具入门
  9. 云计算基础设施;了解基础知识
  10. AWS 备忘单:附考试指南
  11. 使用折弯机折弯钣金
  12. 使用 Canonical 的 MAAS(金属即服务)在裸机云中自动配置服务器