Terraform 面试常见问题
Terraform 是一款开源的 IAC(基础设施即代码)编程工具,使您能够查看、进行和定期更改、创建,以及进一步开发基础设施。
它是 AWS 合作伙伴网络 (APN) 前沿创新合作伙伴,也是 AWS DevOps 能力的成员,是一款类似于 AWS CloudFormation 的 IAC(基础设施即代码)工具,允许您创建、更新和版本化您的 Amazon Web Services (AWS) 基础设施。
在 AWS 中,您对 Terraform 的确切含义是什么?
Terraform 是 AWS DevOps 能力的一部分,也是 APN 前沿创新合作伙伴。
它类似于 AWS Cloud Development,一个额外的 IAC 工具,允许您创建、更新和版本化您的 AWS 基础设施。
Terraform 中的计划报告描述了运行特定应用程序或整个服务器场所需的组件。
然后它创建一个执行计划,描述它将如何达到最佳状态,然后执行它来构建描述的基础设施。
它创建渐进式执行计划,可以应用于计划更改。
Terraform 的主要组件是什么?
它允许您将所有系统视为代码并根据需要构建它们。
主要功能包括:
一个控制台,使客户能够观察实时功能 - 将 HCL 代码转换为 JSON 格式的能力。
通过配置语言支持安装。
模块计数器跟踪已安装到系统的模块数量。
哪些 Terraform 命令最有价值?
命令如下:
Terraform init - 在当前目录中创建一个新工作区。
Terraform refresh - 此命令刷新状态文件。
Terraform output - 查看 Terraform 的结果。
Terraform apply - 执行 Terraform 代码并创建对象。
Terraform Destroy - 销毁 Terraform 创建的内容。
Terraform graph - 生成 DOT 格式的图表。
Terraform plan - 测试 Terraform 将如何执行。
在 Azure 上使用 Terraform 是否可以进行回调?
通过使用 Azure 事件中心,在 Azure 上进行回调是可能的。Terraform 的 Azure 提供程序为用户提供了简单的功能。Microsoft Azure 云 Shell 提供了一个预安装的 Terraform 事件。
什么是 Terraform init?
Terraform-init 是一个用于初始化包含配置文件的有效工作区目录的命令。此命令可以多次循环使用。第一个命令应该是在编写新的 Terraform 计划之后。
什么是 Terraform D?
它是一个在大多数云服务和 Windows 上使用的模块。Terraform init 默认情况下会扫描其他目录以查找模块。
在使用 TFS API 提供资源时,历史记录是否与 Web 上相同?
是的,描述与 Web 上相同,因为 UI 以 API 为基础。UI 上的所有内容都受益于各种方法和 API。
构成 Terraform 配置的组件有哪些?
答 - 配置中包含以下组件:
子图
后端
表达式求值
CLI(通用语言接口)(命令行接口)
顶点求值
加载器配置
遍历图
状态管理器
图构建器
解释 Terraform CLI 的用途并展示一些基本的 CLI 命令。
命令行接口 (CLI) 用于管理基础设施并与状态、配置文件、提供程序等进行交互。
以下是一些基本的 CLI 命令:
terraform init - 为其他命令准备您的工作目录
terraform destroy - 销毁先前创建的基础设施
terraform validate - 检查配置是否有效
terraform apply - 创建或更新基础设施
terraform plan - 显示当前配置所需的更改
定义 Terraform 中的空资源。
nullresource 执行标准资源生命周期,但不会触发任何其他操作。触发器参数允许一组任意值,这些值在更改时会导致资源替换。空资源遵循标准资源生命周期,但不执行任何其他操作。触发器参数允许指定一组任意值,这些值在更改时会导致资源替换。
列出所有 Terraform 支持的版本控制系统。
支持的版本控制系统包括:
GitLab.com
Bitbucket Cloud 和 Server
GitHub Enterprise
Azure DevOps Server 和 Services
GitHub.com
GitLab CE 和 EE
Terraform 中可用的内置供应器的部分有哪些?
以下是内置供应器的列表:
Salt-masterless 供应器
文件供应器
远程执行供应器
Habitat 供应器
本地执行供应器
Chef 供应器
Puppet 供应器
请告诉我们一些 Terraform 的独特应用。
由于 Terraform 扩展了其资源管理功能,因此其用途广泛。一些独特的应用包括:
软件演示开发
资源调度器
自助服务团队
Heroku 应用程序设置
一次性环境创建
多层应用程序开发
多云部署
为什么 Terraform 用于 DevOps?
Terraform 使用一种类似 JSON 的配置语言,称为 HashiCorp 配置语言 (HCL)。HCL 具有非常简单的语法,使 DevOps 团队能够轻松地在多个云层和本地服务器场中定义和维护基础设施配置。
以下是选择 Terraform 用于 DevOps 的原因:
它可以执行基础设施编排,而不仅仅是配置管理(如 Ansible 和 Puppet)
得到所有主流云提供商(如 AWS、Azure、GCP、DigitalOcean 等)的出色支持。
有效地管理持久(动态)基础设施。
提供持久的基础设施,配置更改可以轻松地应用。
使用 HCL,它非常易于学习和理解。
非常适合从一个提供商开始,然后过渡到另一个提供商。
简单的基础设施。