什么是Iac?什么是terraform?两者什么关系

文摘   2024-10-14 09:56   上海  

最近整理了kubernetes初学者文档,回复K8s获取

基础设施即代码 (IaC) 工具允许您使用配置文件而不是通过图形用户界面来管理基础设施。 IaC 允许您通过定义可版本化、重用和共享的资源配置,以安全、一致和可重复的方式构建、更改和管理您的基础设施。

Terraform 是 HashiCorp 的基础设施即代码工具。它允许您在人类可读的声明性配置文件中定义资源和基础设施,并管理基础设施的生命周期。与手动管理基础设施相比,使用 Terraform 有几个优点:

  • Terraform 可以管理多个云平台上的基础设施。
  • 人类可读的配置语言可帮助您快速编写基础架构代码。
  • Terraform 的状态允许您跟踪整个部署过程中的资源变化。
  • 您可以将配置提交给版本控制,以便在基础架构上安全地进行协作。

管理任何基础设施

称为提供程序的 Terraform 插件让 Terraform 通过其应用程序编程接口 (API) 与云平台和其他服务进行交互。

HashiCorp 和 Terraform 社区已经编写了 1,000 多个提供程序来管理 Amazon Web Services (AWS)、Azure、Google Cloud Platform (GCP)、Kubernetes、Helm、GitHub、Splunk 和 aliyun 等上的资源。

查找您已在Terraform 注册表中使用的许多平台和服务的提供商。如果您找不到所需的提供程序,您可以编写自己的提供程序。

标准化您的部署工作流程

提供商将基础设施的各个单元(例如计算实例或专用网络)定义为资源。您可以将来自不同提供商的资源组合成可重用的 Terraform 配置(称为模块),并使用一致的语言和工作流程来管理它们。

Terraform 的配置语言是声明性的,这意味着它描述了基础设施所需的最终状态,这与需要分步指令来执行任务的过程编程语言形成鲜明对比。 Terraform 提供程序会自动计算资源之间的依赖关系,以按照正确的顺序创建或销毁它们。

使用 Terraform 部署基础设施:

  • 范围- 确定项目的基础设施。
  • 作者- 为您的基础设施编写配置。
  • 初始化- 安装 Terraform 管理基础设施所需的插件。
  • 计划- 预览 Terraform 将做出的更改以匹配您的配置。
  • 应用- 进行计划的更改。

跟踪您的基础设施

Terraform 在状态文件中跟踪您的真实基础设施,该文件充当您的环境的事实来源。 Terraform 使用状态文件来确定对基础设施进行的更改,以便它与您的配置相匹配。

合作

Terraform 允许您通过其远程状态后端在基础设施上进行协作。当您使用 HCP Terraform(最多 5 个用户免费)时,您可以安全地与队友共享您的状态,为 Terraform 运行提供稳定的环境,并防止多人同时更改配置时出现竞争情况。

您还可以将 HCP Terraform 连接到 GitHub、GitLab 等版本控制系统 (VCS),从而在您向 VCS 提交配置更改时自动提出基础架构更改建议。这使您可以通过版本控制来管理基础架构的更改,就像使用应用程序代码一样。

如下是一个通过terraform来部署docker的示例

你需要提前安装好terraform,centos系统可以参考如下步骤

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install terraform

主要涉及如下两个配置文件,main.tf和terraform块,它定义了您将在此项目中使用的提供程序和 Terraform 版本。

mian.tf内容如下:

provider "docker" {}

resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

resource "docker_container" "nginx" {
  image = docker_image.nginx.image_id
  name  = "tutorial"
  ports {
    internal = 80
    external = 8000
  }
}

初始化项目,该项目会下载一个名为提供程序的插件,让 Terraform 与 Docker 交互。

terraform init

terraform apply

该命令Terraform 会打印出执行计划,该计划描述了 Terraform 将采取的操作,以便更改您的基础设施以匹配配置。

然后你可以通过如下命令来释放资源

terraform destroy

如果你是阿里云的用户,那么也可以尝试下直接通过terraform来新建资源,看起来更新还是蛮频繁的。

阿里云官网也有相关的文档

最近整理了2023年最火的软件神器,回复关键字2023合集获取


推荐阅读 ⬇️ 都是高赞

再见了 Xshell、iTerm2、FinalShell,mobaxterm,这款开源的终端工具真香

2023年热门39款神器、工具合集(都是之前介绍过的)

推荐一款windows下仅8MB软件,太强大了!!

3.3k star,推荐一款小而美的工具,强大!好用!

PS:求求啦!在看支持下吧!

大侠之运维
分享关于运维的资料、工作经验、日常感悟。
 最新文章