terraform基础
一、安装
官网terraform.io
以centos7为例
yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install terraform
查看是否安装成功
[root@localhost ~]# terraform version
Terraform v1.4.0
on linux_amd64
二、快速编写
创建资源
新建terraform.tf文件,vim terraform
定义云厂商
provider "alicloud" {
region = "cn-shanghai"
access_key = "xxx"
secret_key = "xxx"
}
# 创建vpc
resource "alicloud_vpc" "vpc" {
vpc_name = "vpc_1"
cidr_block = "10.0.0.0/8"
}
# 创建switch
resource "alicloud_vswitch" "vsw_1" {
vswitch_name = "vsw_aliyun1"
vpc_id = alicloud_vpc.vpc.id
cidr_block = "10.0.0.1/24"
zone_id = "cn-shanghai-b"
}
# 新建安全组
resource "alicloud_security_group" "nsg1" {
name = "lyc-aliyun_nsg1"
vpc_id = alicloud_vpc.vpc.id
}
# 将nsg_rule1、nsg_rule2 加入安全组lyc_aliyun_nsg1中
resource "alicloud_security_group_rule" "nsg_rule1" {
type = "ingress"
ip_protocol = "tcp"
nic_type = "intranet"
policy = "accept"
port_range = "1/65535"
priority = 1
security_group_id = alicloud_security_group.nsg1.id
cidr_block = "0.0.0.0/0"
}
# 创建ECS实例
resource "alicloud_instance" "instance" {
availability = "cn-shanghai-b"
security_groups = [${alicloud_security_group.nsg1.id}]
instance_type = "ecs.n1.small"
system_disk_category = "cloud_ssd"
image_id = "centos_7_9_v64_20G_alibase_20220824.vhd"
instance_name = "lyc-kevin"
vswitch_id = alicloud_vswitch.vsw_1.id
internet_max_bandwidth_out = 1
password = "7jh16H199KjfYt09"
然后依次执行如下命令:
terraform init
terraform plan
terraform apply
修改资源
编辑tf配置文件,然后执行
terraform apply
删除资源
terraform destroy
三、常用命令
-
terraform init 初始化一个包含terraform代码的工作目录
-
terraform plan 查看并创建变更计划
-
terraform apply 生成并执行计划(重要)
-
terraform destory 销毁并回收所有terraform管理的基础设施资源
四、拓展基础命令
-
terraform fmt 格式化terraform代码文件的格式和规范
-
terraform show 展示当前所有归terraform控制的资源的状态信息
-
terraform apply -auto-approve 以非交互的方式同意并执行
-
terraform import 将已有云资源导入到terraform的state管理中
-
terraform validate 验证模板语法是否正确
-
terraform state list 列出当前state中的所有资源
-
terraform taint 标记资源为被污染
-
terraform untaint 取消被污染标记
-
terraform refresh 刷新当前state的内容
-
terraform graph 生成执行计划的关系图
-
terraform graph | dot -Tsvg > graph.svg 将关系图导出为svg关系图 (先安装好yum install -y graphviz)
terraform 配置文件怎么编写呢,参考这个网站https://registry.terraform.io/
阿里云 https://registry.terraform.io/providers/aliyun/alicloud/latest/docs
阿里云 terraform https://help.aliyun.com/document_detail/335111.html
zhangsan
accesskey:LTAI5t7CfK4NGVDE2bN99QwZ
secretkey:T7B9Ab526MMR0QbBM1OEMyWUnqcKhQ
fuqiang0105
AccessKey ID LTAI5tFVzwux5Cc1b8iR6qAV
AccessKey Secret uW1e9d83dsjaMnBMxrfcfk92Md5B2A