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

 
posted @ 2024-07-04 11:09  羊脂玉净瓶  阅读(40)  评论(0)    收藏  举报