打算写一个系列的文章,有啥问题可以交流,做到温故知新,文章排版乱,见谅。
- 第一篇文章
terraform是什么?
在学习新东西的时候,要了解新的知识解决了什么问题。举个非常简单的栗子,我们在阿里云上创建一台ecs,也就是虚拟机。最简单的是去web页面上点点点,配置实例类型,子网,安全组...。一台可以,如果领导让你创建100台呢,我们就要点一下午了。有同学说,我可以写api对接阿里云啊,小伙子有想法。
- terraform就是解决以上的问题,他是云厂商无关的一个配置语言,其实就是每个云厂商都封装了自己的api,这里说一句(md,华为云被屏蔽了)
- 官网地址www.terraform.io/
安装terraform
先安装个命令行工具吧,现在最近的版本是1.3.8,下载地址
选择二进制安装,简单方便省事。
然后我们配置一下环境
- Linux, macos系统直接放到bin目录就行了,运行terraform version返回如下(版本1.1.7没太大关系)
Terraform v1.1.7
on darwin_amd64
提前准备
👆🏻提到了阿里云,那我们就在阿里云上操作吧,前段时间阿里云的事故大家知道么,不知道看文章,所以说啥高可用,多机房备份方案,实践起来还是有难度,个人见解,不喜勿喷。
- 申请一个阿里云账号,怎么申请的,直接bing🔍
- 我们需要一个AccessKey,AccessSecret
长这样的
来创建一个vpc试试
- 有了上面的key和secret后,我们先创建网上copy一个demo试试 去terraform的registry搜索阿里云
点进去有使用说明
- 上面的很多概念暂时就不介绍了,下期在讲了?
我们先看文档怎么使用的
- 搜索vpc
- 看到示例代码
- 最终我们的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试试
- 好像没啥问题,继续terraform plan
- 看报错应该是我们没有设置accessKey导致的,一番搜索下来最后在找到方案
- 最后的添加了如下行,具体生成阿里云的profile,去官网找找,阿里云的文档做的一般般。
provider "alicloud" {
profile = "akProfile"
}
- 再次terraform plan
- 没报错了,提示让我们继续运行terraform apply,输入yes后好像运行成功!
- 我们去阿里云上验证一下
创建成功了,完结。
最后我们虚伪总结一下
- 我们安装了一个terraform的客户端
- 配置了一个阿里云账号,accessKey和secret
- 我们用terraform在阿里云上创建了一个vpc