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

在裸金属云上使用 Terraform 部署物理服务器 —— 无缝 IaC 集成

基础设施即代码简化了虚拟化云资源的管理流程。随着云原生专用服务器的出现,现在可以用同样的灵活度部署物理机器。

phoenixNAP 的云原生专用服务器平台裸金属云(BMC)在设计之初就充分考虑了 IaC 兼容性。BMC 与 HashiCorp Terraform(DevOps 领域最广泛使用的 IaC 工具之一)深度集成。这种集成让用户能够利用定制的 Terraform Provider,仅用几行代码、在几分钟内完成 BMC 服务器部署。

为什么需要基础设施即代码?

基础设施即代码是一种通过人类可读的配置文件,自动化部署和管理云资源的方法。在速度与敏捷性至关重要的 DevOps 实践中,它扮演着关键角色。

在 IaC 出现之前,系统管理员必须手工部署所有资源。每一台服务器、数据库、负载均衡器或网络设备都需要手动配置。如今,团队利用各种 IaC 引擎,可在几分钟跨多云供应商启动或销毁数百台服务器。

虽然市场上有许多强大的 IaC 工具,但 Terraform 凭借其突出地位,成为 IaC 领域最知名的参与者之一。

Terraform 基础

HashiCorp Terraform 是一款基础设施即代码引擎,允许 DevOps 团队安全地部署、修改和版本化云原生资源。其开源工具免费使用,但大多数团队选择搭配 Terraform Cloud 或 Terraform Enterprise,以获得协作与治理能力。

使用 Terraform 部署时,开发者在配置文件中定义期望资源,配置文件采用 HashiCorp 配置语言(HCL)编写。Terraform 分析该文件生成执行计划,经用户确认后,按配置精准供给资源。

Terraform 能识别期望状态与现有基础设施状态的差异。这种机制在 DevOps 流水线中至关重要,确保跨多环境的一致性。

使用 Terraform 部署裸金属云服务器

Terraform 维护着不断增长的 Provider 列表。Provider 是各服务商提供的自定义插件,用户在配置文件中初始化即可使用。

phoenixNAP 拥有自己的 Terraform Provider —— pnap。任何裸金属云用户均可使用它部署和管理 BMC 服务器,无需登录 Web 版裸金属云门户。phoenixNAP Provider 的源码与文档可在 Terraform 官方 Provider 页面获取。

Terraform 结合裸金属云的示例用法

开始用 Terraform 部署 BMC 服务器前,需创建 BMC 账号,在本地或远程服务器安装 Terraform。运行 Terraform 前,收集必要的认证数据并存入 config.yaml 文件,包括在 BMC 账号中可找到的 clientId 和 clientSecret。

准备就绪后,创建 Terraform 配置文件,声明使用 pnap provider:

terraform {
  required_providers {
    pnap = {
      source  = "phoenixnap/pnap"
      version = "0.6.0"
    }
  }
}
provider "pnap" {
  # 配置选项
}

configuration options 部分应包含 BMC 基础设施期望状态的描述。

以在凤凰城数据中心部署最基础的裸金属云服务器配置 s1.c1.small、Ubuntu OS 为例:

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 表示可对服务器执行的电源操作,包括 reboot、reset、powered-on、powered-off、shutdown。所有参数都必须赋值,但 action 可选。

运行 Terraform init CLI 命令,指示 Terraform 开始初始化过程。

Terraform 配置文件应以 .tf 为扩展名。虽然 Terraform 使用领域特定语言定义配置,但用户也可用 JSON 编写,此时扩展名为 .tf.json。

在裸金属云上使用 Terraform 部署物理服务器 —— 无缝 IaC 集成

所有 Terraform 配置文件均具备可复用性、可扩展性,并可版本化,便于团队协作 BMC 供给方案。

无论部署一台还是数百台服务器,Terraform 与 BMC 都能胜任。配置文件中可定义的服务器数量无上限,也可同时使用其他 Provider。

为便于管理复杂部署,Terraform 提供 模块 功能 —— 以抽象方式定义环境架构的容器。模块是可复用的代码块,可调用包含一个或多个基础设施对象的其他模块。

借助 Terraform Cloud 协作 BMC 配置

掌握 Terraform 配置编写与供给后,您会希望建立一种机制,让整个 DevOps 团队能更高效地部署新资源、修改现有 BMC 资源。

可将 Terraform 配置存入版本控制系统,并从 Terraform Cloud 远程运行(免费)。这能降低部署错误配置资源的风险,提升管控力,确保每次变更都从云端可靠执行。

还可利用 Terraform Cloud 的远程状态存储。Terraform 状态文件将配置与现实部署的资源映射。使用 Terraform Cloud 存储状态文件,保证团队始终保持同步。

Terraform 的另一大优势是配置文件可复用,极大简化了多环境复制。通过维护跨环境一致性,团队能更快、更安全地将高质量代码交付生产。

自动化您的基础设施

本文概述了如何利用 Terraform 的灵活性,以编程方式交互裸金属云资源。结合 phoenixNAP Terraform Provider 与 Terraform Cloud,只需几行代码即可快速部署、配置、注销多个 BMC 实例。

这种自动化基础设施供给方式提升了 DevOps 工作流的速度与敏捷性。BMC 结合 Terraform Cloud,让团队专注于构建软件,而非等待专用服务器手动供给。

云计算

  1. 掌握折弯机钣金折弯:技术、CNC 力量与行业洞察
  2. 优化云基础设施,实现峰值性能与效率
  3. 为何 IT 专业人士必须精通基础设施拓扑绘制
  4. 本地基础设施过时了吗?5 个理由说明它依然重要
  5. 周报:云采用飙升,治理与创新成焦点
  6. 基础设施即代码:优势、挑战与最佳实践
  7. 云与 DevOps 如何加速现代软件交付
  8. Code-Ready Containers实战指南:基于Red Hat OpenShift的云原生流程自动化
  9. 云计算基础设施专业指南:核心概念与演进史
  10. AWS 备考速查表与考试指南:掌握核心服务与认证路径
  11. 借助 Canonical MAAS 加速裸金属云部署 —— 几分钟内实现自动化服务器供给
  12. Linux perf 实战指南:分布式应用性能剖析