Cloud Shell
更新时间:
阿里云Cloud Shell是一款帮助您运维的免费产品,预装了Terraform的组件,并配置好身份凭证(credentials)。因此您可直接在Cloud Shell中运行Terraform的命令。
登录Cloud Shell
打开浏览器,访问Cloud Shell的地址https://shell.aliyun.com。 更多Cloud Shell入口及使用请参见使用云命令行。
说明
建议您使用RAM用户登录,为确保您的阿里云账号的安全,如非必要,避免使用阿里云账号访问云资源。
切换Terraform版本
Cloud Shell中默认的Terraform版本可能较低,会导致部分功能无法正常使用,建议将其切换至更高版本。
查看当前Terrafrom版本,若版本低于1.2,建议切换到更高版本。
terraform version
查看Cloud Shell中内置的Terraform版本:
tfenv list
切换至指定Terrafrom版本:
tfenv use <terraform_version>
例如切换至1.9.5版本:
编写Terraform模板
本文以使用Terraform创建ECS为例,帮助您理解Terraform是如何编排资源,以及如何使用Terraform命令进行资源的创建与销毁。
创建Terraform模板文件,命名为main.tf,并使用vim命令进行直接编辑。
mkdir tf-demo && cd tf-demo vim main.tf
复制以下Terraform示例代码到main.tf文件:
provider "alicloud" { region = var.region } # 资源创建的地域 variable "region" { default = "cn-beijing" } # ECS实例名称 variable "instance_name" { default = "tf-cloudshell-test" } # ECS实例规格 variable "instance_type" { default = "ecs.n2.small" } # 公网出带宽,值为0时,表示不开通公网 variable "internet_bandwidth" { default = 10 } # ECS系统镜像 variable "image_id" { default = "ubuntu_18_04_64_20G_alibase_20190624.vhd" } # ECS系统盘类型 variable "disk_category" { default = "cloud_efficiency" } # ECS实例登录密码 variable "password" { default = "TF-test@1234" } # 创建VPC resource "alicloud_vpc" "vpc" { vpc_name = "tf_test_foo" cidr_block = "172.16.0.0/12" } # 根据实例规格和云盘类型查询存在资源的可用区 data "alicloud_zones" "default" { available_disk_category = var.disk_category available_resource_creation = "VSwitch" available_instance_type = var.instance_type } # 创建vSwitch resource "alicloud_vswitch" "vsw" { vpc_id = alicloud_vpc.vpc.id cidr_block = "172.16.0.0/21" zone_id = data.alicloud_zones.default.zones.0.id } # 创建安全组 resource "alicloud_security_group" "default" { security_group_name = "default" vpc_id = alicloud_vpc.vpc.id } # 创建安全组入方向规则 resource "alicloud_security_group_rule" "allow_all_tcp" { type = "ingress" ip_protocol = "tcp" nic_type = "intranet" policy = "accept" port_range = "1/65535" priority = 1 security_group_id = alicloud_security_group.default.id cidr_ip = "0.0.0.0/0" } resource "alicloud_instance" "instance" { # 绑定安全组 security_groups = alicloud_security_group.default.*.id instance_type = var.instance_type system_disk_category = var.disk_category image_id = var.image_id instance_name = var.instance_name # 所在交换机 vswitch_id = alicloud_vswitch.vsw.id internet_max_bandwidth_out = var.internet_bandwidth password = var.password }
执行
terraform init
命令初始化配置。执行
terraform plan
命令预览配置。执行
terraform apply
创建ECS实例,如果执行结果返回Apply complete! ,则证明资源创建成功。若不再需要这台实例,可执行
terraform destroy
对创建过的资源进行释放。
该文章对您有帮助吗?