使用 Bash 在 Azure Cloud Shell 中配置 Terraform
使用 Terraform 可以定义、预览和部署云基础结构。 使用 Terraform 时,请使用 HCL 语法来创建配置文件。 利用 HCL 语法,可指定 Azure 这样的云提供程序和构成云基础结构的元素。 创建配置文件后,请创建一个执行计划,利用该计划,可在部署基础结构更改之前先预览这些更改。 验证了更改后,请应用该执行计划以部署基础结构。
本文提供向 Azure 进行身份验证以用于 Terraform 的选项。
在本文中,学习如何:
- 配置 Cloud Shell
- 显示当前 Azure 帐户
- 了解常见 Terraform 和 Azure 身份验证方案
- 从 Cloud Shell 通过 Microsoft 帐户进行身份验证(使用 Bash 或 PowerShell)
- 从 Windows 通过 Microsoft 帐户进行身份验证(使用 Bash 或 PowerShell)
- 使用 Azure CLI 创建服务主体
- 使用 Azure PowerShell 创建服务主体
- 在环境变量中指定服务主体凭据
- 在 Terraform 提供程序块中指定服务主体凭据
1.配置环境
- Azure 订阅:如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
2. 打开 Cloud Shell
如果已打开了 Cloud Shell 会话,可以跳转到下一部分。
浏览到 Azure 门户
如有必要,请登录 Azure 订阅并更改 Azure 目录。
打开 Cloud Shell。
如果以前未使用过 Cloud Shell,请配置环境和存储设置。
选择命令行环境。
3. 在 Azure Cloud Shell 中安装最新版本的 Terraform
Cloud Shell 自动更新到最新版本的 Terraform。 但是,这些更新在发布后的几周内提供。 本文介绍如何下载并安装当前版本的 Terraform。
确定在 Cloud Shell 中所使用的 Terraform 版本。
terraform version
如果安装在 Cloud Shell 中的 Terraform 版本不是最新版本,则会看到一条消息,指示 Terraform 的版本已过时。
如果能够正常使用指示的版本,请跳到下一部分。 否则,请继续执行以下步骤。
浏览到 Terraform 下载页。
向下滚动到“Linux”下载链接。
将鼠标移动到“64 位”链接上方。 此链接适用于适用于 Cloud Shell 的最新 64 位 Linux AMD 版本。
复制 URL。
运行
curl
,将占位符替换为在上一步骤中复制的 URL。curl -O <terraform_download_url>
解压缩文件。
unzip <zip_file_downloaded_in_previous_step>
如果目录不存在,请创建名为
bin
的目录。mkdir bin
将
terraform
文件移动到bin
目录中。mv terraform bin/
关闭并重启 Cloud Shell。
验证下载的 Terraform 版本是否为路径中的第一个。
terraform version
4. 验证默认 Azure 订阅
使用 Microsoft 帐户登录 Azure 门户时,会使用该帐户的默认 Azure 订阅。
Terraform 会使用默认 Azure 订阅中的信息自动进行身份验证。
运行 az account show 以验证当前 Microsoft 帐户和 Azure 订阅。
az account show
通过 Terraform 所做的任何更改都显示在显示的 Azure 订阅上。 如果这是所需内容,请跳过本文的其余部分。
Azure 上的 Terraform 故障排除
排查在 Azure 上使用 Terraform 时遇到的常见问题