云命令行(Cloud Shell)中预装了Terraform。Terraform是一种开源工具,用于安全高效地预配和管理云基础结构。您可以通过Terraform管理阿里云资源。
启动Cloud Shell
选择一种方式启动云命令行:
在控制台中运行
单击控制台首页头部导航的命令行按钮,启动云命令行。
独立运行
在浏览器中输入https://shell.aliyun.com打开云命令行操作界面。
您可以根据实际需要打开多个命令行窗口,但最多可同时打开5个云命令行窗口。
在启动云命令时,请注意:
第一次连接云命令行时会为您创建虚拟机,会消耗一些时间,最长不超过30秒。
- 打开多个云命令行窗口时,所有窗口都会连接到同一台虚拟机。虚拟机数量不会因您打开新的命令行窗口而增加。
管理云资源
在Cloud Shell中编写Terraform模板。
您可以使用
vim
命令直接编写模板。执行如下命令创建一个工程目录及模板文件:
mkdir terraform-project cd terraform-project touch main.tf
以下代码示例是一个创建ECS实例的Terraform模板,请将内容粘贴到
main.tf
中。Cloud Shell 可自动获取登录账号的身份认证信息,无需额外设置环境变量。provider "alicloud" { region = "cn-beijing" } data "alicloud_zones" "default" { available_disk_category = "cloud_efficiency" available_resource_creation = "VSwitch" } resource "alicloud_vpc" "vpc" { vpc_name = "tf_test_foo" cidr_block = "172.16.0.0/12" } 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" { name = "default" vpc_id = alicloud_vpc.vpc.id } resource "alicloud_instance" "instance" { # cn-beijing availability_zone = data.alicloud_zones.default.zones.0.id security_groups = alicloud_security_group.default.*.id # series III instance_type = "ecs.n4.large" system_disk_category = "cloud_efficiency" image_id = "ubuntu_18_04_64_20G_alibase_20190624.vhd" instance_name = "test_foo" vswitch_id = alicloud_vswitch.vsw.id internet_max_bandwidth_out = 10 } 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" }
执行
init
命令初始化Terraform。terraform init
执行
plan
命令预览配置。terraform plan
执行
apply
命令创建ECS实例。terraform apply
切换 Terraform 版本
Cloudshell 中默认的 Terraform 版本为 0.12.31,如果需要更高的版本可以通过tfenv
来切换。
查看Cloud Shell中内置的Terraform版本。
tfenv list
切换到需要的Terraform版本。
tfenv use <terraform_version>