terraform docs [1]

70 阅读2分钟

打算写一个系列的文章,有啥问题可以交流,做到温故知新,文章排版乱,见谅。

  • 第一篇文章

terraform是什么?

在学习新东西的时候,要了解新的知识解决了什么问题。举个非常简单的栗子,我们在阿里云上创建一台ecs,也就是虚拟机。最简单的是去web页面上点点点,配置实例类型,子网,安全组...。一台可以,如果领导让你创建100台呢,我们就要点一下午了。有同学说,我可以写api对接阿里云啊,小伙子有想法。

  • terraform就是解决以上的问题,他是云厂商无关的一个配置语言,其实就是每个云厂商都封装了自己的api,这里说一句(md,华为云被屏蔽了)
  • 官网地址www.terraform.io/

安装terraform

先安装个命令行工具吧,现在最近的版本是1.3.8,下载地址

image.png 选择二进制安装,简单方便省事。 然后我们配置一下环境

  • Linux, macos系统直接放到bin目录就行了,运行terraform version返回如下(版本1.1.7没太大关系)
Terraform v1.1.7
on darwin_amd64

提前准备

👆🏻提到了阿里云,那我们就在阿里云上操作吧,前段时间阿里云的事故大家知道么,不知道看文章,所以说啥高可用,多机房备份方案,实践起来还是有难度,个人见解,不喜勿喷。

  1. 申请一个阿里云账号,怎么申请的,直接bing🔍
  2. 我们需要一个AccessKey,AccessSecret

长这样的

image.png

来创建一个vpc试试

  • 有了上面的key和secret后,我们先创建网上copy一个demo试试 去terraform的registry搜索阿里云

image.png 点进去有使用说明

image.png

  • 上面的很多概念暂时就不介绍了,下期在讲了? 我们先看文档怎么使用的 image.png
  • 搜索vpc image.png
  • 看到示例代码

image.png

  • 最终我们的copy过来的就会变成如下内容
terraform {
  required_providers {
    alicloud = {
      source = "aliyun/alicloud"
      version = "1.198.0"
    }
  }
}

provider "alicloud" {
}

resource "alicloud_vpc" "vpc" {
  vpc_name   = "tf_test_foo"
  cidr_block = "172.16.0.0/12"
}

开始润起来

  • 把上面的复制成一个.tf的文件,我们就叫main.tf了,然后运行terraform init试试

image.png

  • 好像没啥问题,继续terraform plan

image.png

  • 看报错应该是我们没有设置accessKey导致的,一番搜索下来最后在找到方案
  • 最后的添加了如下行,具体生成阿里云的profile,去官网找找,阿里云的文档做的一般般。
provider "alicloud" {
  profile = "akProfile"
}
  • 再次terraform plan

image.png

  • 没报错了,提示让我们继续运行terraform apply,输入yes后好像运行成功!

image.png

  • 我们去阿里云上验证一下

image.png 创建成功了,完结。

最后我们虚伪总结一下

  1. 我们安装了一个terraform的客户端
  2. 配置了一个阿里云账号,accessKey和secret
  3. 我们用terraform在阿里云上创建了一个vpc

有兴趣可以参考代码