Terraform (1) 安装与配置

时间:2024-02-23 14:58:51

  《Windows Azure Platform 系列文章目录

 

  本文将介绍如何安装与配置Terraform,并构建与Azure China环境的链接

 

  1.笔者的环境是Windows 10 Sub System for Linux (WSL),有关WSL环境的安装与配置,不在此文中赘述。

  2.安装完WSL后,我们安装unzip工具

sudo apt install unzip

  3.下载Terraform,https://www.terraform.io/downloads.html

wget https://releases.hashicorp.com/terraform/0.12.24/terraform_0.12.24_linux_amd64.zip

  4.unzip terraform

unzip terraform_0.12.24_linux_amd64.zip

  5.移动文件terraform到/usr/bin目录

mv terraform /usr/bin

  6.查看版本

terraform version

 

  7.Terraform安装完毕后,我们需要在WSL中设置azure cli,具体参考:https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest

 

  8.然后我们需要设置Azure AD App Registration然后获得:

  - Application (Client) ID

  - Directory (Tenant) ID

  - Client secrets

  有关这部分的详细内容,请参考:Windows Azure AD (7) 创建配置应用程序和服务主体 (Application and Service Principal)

 

  9.在订阅中,设置App Registration的RBAC权限。

  

  10.我们在WSL创建一个文件夹并命名为data,在这个文件夹中设置Terraform的运行环境,命名为setenv.sh。注意下面的订阅ID、Client ID等,从步骤8中获得

#!/bin/sh
echo "Setting environment variables for Terraform"
export ARM_SUBSCRIPTION_ID=your_subscription_id
export ARM_CLIENT_ID=your_appId
export ARM_CLIENT_SECRET=your_password
export ARM_TENANT_ID=your_tenant_id

# Not needed for public, required for usgovernment, german, china
export ARM_ENVIRONMENT=public

   

  运行结果如下图,注意我们使用的是国内由世纪互联运维的Azure,最下面的 ARM_ENVIRONMENT=china

  

 

  11.运行source命令,使其中定义的环境变量立即生效

source setenv.sh

  运行完毕后,在shell中执行env查看当前环境变量是否生效。图略

 

  12.创建一个sample,命名为test.tf,通过vi编辑文件内容,并保存文件

  可以看到我们会创建一个新的资源组,该资源组的Location在China East 2

provider "azurerm" {
  # The "feature" block is required for AzureRM provider 2.x.
  # If you are using version 1.x, the "features" block is not allowed.
  version = "~>2.0"
  features {}
}
resource "azurerm_resource_group" "rg" {
        name = "testResourceGroup"
        location = "chinaeast2"
}

 

  13.在Terraform中运行

terraform init

  输出结果:

  

 

  14.执行terraform apply

terraform apply -auto-approve

 

  15.执行完毕后,我们回到Azure Portal,可以查看到已经创建成功的Azure Resource Group,名称为:testResourceGroup