博客
关于我
Azure Terraform(二)语法详解
阅读量:397 次
发布时间:2019-03-05

本文共 1879 字,大约阅读时间需要 6 分钟。

一,引言

上篇文章我们简单介绍了通过基础设施管理工具Terraform来统一管理复杂的云基础设施资源。作为入门演示,我们使用Terraform部署Azure资源组的方式感受到了iac工具带来的强大便利。接下来,我们将详细介绍Terraform语法,从代码的角度更好地理解Azure各个资源模块的使用方法,以便更高效地部署资源。

--------------------Azure Terraform 系列--------------------

二,正文

1,Azure Providers

Terraform作为一个可扩展的工具,通过Provider支持新的基础架构。Provider可以理解为上游API的逻辑抽象,他们负责理解API交互并暴露资源。不同云厂商都需要提供一个Provider来实现对自家基础设施的统一管理,例如Azure、AWS、GCP、Kubernetes、阿里云等。官方罗列的Providers数量超过600个。

如果你想了解具体的Terraform Providers,可以点击此链接查看:[链接]。

那么,如何指定Terraform Azure Provider?

provider "azurerm" {      version = "~>2.0"      features {}    }
  • version ="~>2.0":表示我们要使用Azure Provider的版本为>2.0。
  • features:表示自定义某些Azure提供程序资源的行为。对于Azure Provider的版本2.x,features字段是必要的。如果使用的是1.x版本,则不需要features。

你可以通过terraform init来验证以上解释。

2,基本的Terraform 配置文件

我们知道,Terraform通过定义资源模块来创建和管理云资源。以下是一个基本的Terraform配置文件示例:
resource "azurerm_resource_group" "example" {      name = "Web_Test_TF_RG"      location = "East Asia"    }
  • resource:表示我们将创建一个类型为“azurerm_resource_group”的资源组。
  • example:表示我们为当前新创建的资源组命名为“Web_Test_TF_RG”。
  • name:定义资源组的名称为“Web_Test_TF_RG”。
  • location:定义资源组的位置为“East Asia”。

执行部署计划后,Terraform会在项目文件夹中生成terraform.tfstate和.terraform.tfstate.lock.info文件。

3,Terraform 状态管理

执行`terraform apply`命令后,Terraform会在项目文件夹中生成以下文件:
  • terraform.tfstate:包含已部署到Azure的所有状态信息。
  • .terraform.tfstate.lock.info:表示部署过程中加锁的文件。

有人可能会问:为什么要加锁?

原因很简单,类似于对数据库的操作,对同一数据的修改或删除需要加锁处理。Terraform的状态文件加锁也是出于同样的道理。

4,Terraform扩展知识点

你知道Azure有多个版本,常用的有Azure Global和Azure China。如果我们在Terraform的Provider中不指定Azure环境,Terraform会默认将资源部署到Azure Global。如果使用Azure China(世纪互联版的Azure),则必须在Provider中指定Azure环境。

environment的可能取值包括:

  • public(默认)
  • usgovernment
  • german
  • china

如果不想在Provider中指定云环境,可以通过设置环境变量来实现:

setx ARM_ENVIRONMENT china

完整示例:

provider "azurerm" {      version = "~>2.0"      environment = "china"      features {}    }

今天的分享到此结束。虽然没有介绍新的内容,但通过对代码参数的介绍,让我们能够更好地理解Terraform。

三,结尾

参考资料:[链接] 作者: 版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。
你可能感兴趣的文章
Python语言及其应用 - 知识点遍历
查看>>
Python 优化提速的 8 个小技巧
查看>>
Python 余弦相似度与皮尔逊相关系数 计算
查看>>
python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
查看>>
python 使用filetype校验文件
查看>>
Python 使用flush函数将缓冲区数据立即写磁盘
查看>>
python 使用in判断不准确,in不好使
查看>>
Python 使用pandas 进行查询和统计详解
查看>>
Redis 配置文件redis.conf详细解释
查看>>
python网络爬虫(2)——scrapy框架的基础使用
查看>>
python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
查看>>
Python 使用哈希函数用于加密
查看>>
Python 依赖管理的革新——Poetry 深度解析
查看>>
python 保留精度及增加去除数字的千位分隔符(金额化数字)
查看>>
python 倒计时 9,8,7,。。。。。。0
查看>>
Python 入门开发学习笔记之数据的增删改查
查看>>
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
查看>>
Python 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>