【Terraform】云基础设施创建-Azure 资源组

2,116 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

通过前几篇文章已经对Terraform有了基础的认识,并且同时基于docker编排了nginx环境。Terraform最初的目的是代码编排云计算领域的基础设施,这一篇文章就着官方的例子,使用Terraform创建Azure的资源组。

一、环境准备

云计算资源:一台计算实例(1核2G,预装centos7 minimal)
软件环境:Terraform v1.0.7
Azure配置信息: 通过设置订阅目录、Azure Acitve Directory、应用注册、应用注册下的证书和密码获取如下配置:

  • 订阅目录Id azure_subscription_id
  • 订阅租户Id azure_subscription_tenant_id
  • 应用id service_principal_appid
  • 应用程序密码service_principal_password 提示:如果不想使用密码,也可以使用证书,即公钥。

二、代码编排资源

这次例子非常简单,就偷懒都放到main.tf文件里面,如果更加规范的文件目录,应该是把provider信息提取到一个单独的文件,另外动态的变量信息也应该提取出来作为一个单独文件。

# Configure the Azure provider

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 2.80.0"
    }
  }
  required_version = ">= 0.14.9"
}

provider "azurerm" {
  features {}
  subscription_id   = "<azure_subscription_id>"  
  tenant_id         = "<azure_subscription_tenant_id>"  
  client_id         = "<service_principal_appid>"  
  client_secret     = "<service_principal_password>"  
}

resource "azurerm_resource_group" "rg" {
  name     = "myTFResourceGroup"
  location = "westus2"
}

三、实践部署

首先现在服务器上创建一个文件夹,使工作环境有一个独立的工作空间,其目录结构如下图所示。

图片.png

然后上传main.tf文件到此文件目录,然后执行Terraform init初始化工作空间。

$terrform init

执行成功,结果显示如下图所示。 图片.png 然后执行terraform plan预览执行计划。

$terraform plan

执行成功,显示会新增资源组,结果详情显示如下图所示。

图片.png

最后执行部署terraform apply,创建资源。

$terraform apply

执行成功,显示资源创建成功,结果详情显示如下图所示。

图片.png 然后检查Azure门户控制面板,显示资源组多了一个myTFResourceGroup,至此创建成功。

图片.png

四、总结

这是一个相当入门级别的例子,有一些细节可能没有讲清楚,比如如何获取Azure认证的配置信息等,等另外写一篇文章配置吧。


欢迎在评论区讨论,掘金官方将在掘力星计划活动结束后,在评论区抽送100份掘金周边,抽奖详情见活动文章。