0Pricing
DevOps Bootcamp · 课时

使用 Terraform 和 GitHub Actions 实现 IaC

了解如何将 Terraform 集成到 GitHub Actions 工作流中,以配置和管理基础设施

使用 Terraform 和 GitHub Actions 实现 IaC 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

基础设施即代码(IaC)

欢迎!在本课中,我们将深入了解基础设施即代码(IaC)。这种方法意味着使用代码而不是手动流程来管理和配置基础设施(例如服务器、数据库和网络)。

您可以把它想象成是在为基础设施编写软件。这样可以为整个环境带来一致性、可重复性和版本控制等诸多好处。

认识 IaC 工具 Terraform

Terraform 是最受欢迎的 IaC 工具之一,它是由 HashiCorp 开发的开源工具。

Terraform 允许您在易于人类阅读的配置文件中定义基础设施资源。然后,它会使用这些文件在各种云提供商(例如 AWS、Azure、GCP)及其他服务中配置和管理资源。

Terraform 的 HCL 语法

Terraform 使用一种名为 HashiCorp 配置语言(HCL)的声明式语言。HCL 的设计便于人类阅读和编写,使您的基础设施定义更加清晰。

下面是一个使用 HCL 定义 AWS VPC(虚拟私有云)的简单示例:

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "my-vpc"
  }
}

Terraform 核心工作流

Terraform 遵循一致的三步工作流来管理基础设施:

  • terraform init:初始化工作目录并下载所需的提供商插件。
  • terraform plan:生成执行计划,显示 Terraform 将对基础设施进行哪些更改。
  • terraform apply:执行计划中列出的更改,配置或修改资源。

使用 GitHub Actions 实现自动化

将 Terraform 集成到 GitHub Actions 中,可以大幅增强您的 IaC 策略,让您能够自动化基础设施部署流水线中的关键步骤。

使用 GitHub Actions,您可以:

  • 在每个拉取请求上自动运行 terraform plan。
  • 确保基础设施更改经过审查和批准。
  • 自动执行 terraform apply,实现受控部署。

您的 Terraform 工作流文件

Terraform 的 GitHub Actions 工作流定义在仓库 .github/workflows/ 目录中的 YAML 文件内。此文件规定工作流何时运行以及执行哪些步骤。

下面是一个可以规划更改的工作流基本结构:

name: 'Terraform CI'
on: 
  pull_request:
    branches:
      - main
jobs:
  terraform:
    name: 'Terraform'
    runs-on: ubuntu-latest
    steps:
      # Your workflow steps will go here

设置 Terraform 与初始化步骤

运行任何 Terraform 命令之前,您的工作流需要检出代码、设置 Terraform CLI 并初始化工作目录。

hashicorp/setup-terraform 操作可以轻松完成这些工作:

- name: Checkout Code
  uses: actions/checkout@v4

- name: Setup Terraform
  uses: hashicorp/setup-terraform@v2
  with:
    terraform_version: 1.5.x

- name: Terraform Init
  run: terraform init

Terraform 计划步骤

terraform plan 命令是任何 IaC 工作流中的关键步骤。它会执行一次“模拟运行”,以确定需要采取哪些操作,才能达到配置文件中定义的目标状态。

此步骤允许您在云环境实际发生任何修改之前,先审查拟议的更改。

- name: Terraform Plan
  run: terraform plan
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

快速检查:Terraform 计划

理解核心命令是有效使用 Terraform 自动化工作流的关键。

Terraform 应用注意事项

terraform apply 命令是真正对基础设施进行更改的步骤。

在自动化流水线中,通常只有在人工审查 plan 输出之后,或在合并到特定分支(例如 main 或 production)时,才会触发 terraform apply。这样可以避免意外或未经批准的基础设施更改。

IaC、Terraform 与 Actions 回顾

在本课中,我们探讨了基础设施即代码(IaC)如何帮助使用代码管理基础设施。我们重点介绍了作为 IaC 主要工具的 Terraform,并学习了它的 HCL 语法以及 初始化、计划、应用这一核心工作流。

您还了解了 GitHub Actions 如何自动化 terraform init 和 terraform plan 步骤,使基础设施部署更加安全、一致,并完全集成到 CI/CD 流水线中。

常见问题解答

「使用 Terraform 和 GitHub Actions 实现 IaC」课时是免费的吗?

是的 — 「使用 Terraform 和 GitHub Actions 实现 IaC」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「使用 Terraform 和 GitHub Actions 实现 IaC」这节课中我会学到什么?

了解如何将 Terraform 集成到 GitHub Actions 工作流中,以配置和管理基础设施 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「使用 Terraform 和 GitHub Actions 实现 IaC」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 Terraform 和 GitHub Actions 实现 IaC
  2. 管理云资源
  3. 自动化基础设施更新
  4. 管理 Terraform 状态与远程后端
← 返回 DevOps Bootcamp