小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。
通过前几篇文章已经对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"
}
三、实践部署
首先现在服务器上创建一个文件夹,使工作环境有一个独立的工作空间,其目录结构如下图所示。
然后上传main.tf文件到此文件目录,然后执行Terraform init初始化工作空间。
$terrform init
执行成功,结果显示如下图所示。
然后执行
terraform plan预览执行计划。
$terraform plan
执行成功,显示会新增资源组,结果详情显示如下图所示。
最后执行部署terraform apply,创建资源。
$terraform apply
执行成功,显示资源创建成功,结果详情显示如下图所示。
然后检查Azure门户控制面板,显示资源组多了一个
myTFResourceGroup,至此创建成功。
四、总结
这是一个相当入门级别的例子,有一些细节可能没有讲清楚,比如如何获取Azure认证的配置信息等,等另外写一篇文章配置吧。
欢迎在评论区讨论,掘金官方将在掘力星计划活动结束后,在评论区抽送100份掘金周边,抽奖详情见活动文章。