在現代雲端計算環境中,自動化部署已經成為一項重要的任務。Terraform,作為HashiCorp公司的一款開源工具,以其強大的基礎設施即程式碼(IaC)能力,使得我們能夠輕鬆管理和部署各種雲資源。
阿里雲資源編排服務(Resource Orchestration Service,ROS)是一種簡單易用的雲端計算資源自動化部署服務,提供了Terraform託管服務。因此您可以直接在ROS中部署Terraform模版。在這篇文章中,我們將詳細介紹如何使用ROS的Terraform託管服務一鍵部署經典的2048小遊戲。
首先,讓我們瞭解一下什麼是2048遊戲。2048是一款基於數字的益智遊戲,玩家需要在4x4的格子中滑動數字方塊,每移動一次,所有方塊都會向滑動的方向靠攏,同時空白位置會隨機出現一個2或4,目標是合併出2048這個數字。現在,我們要將這個遊戲部署到雲端,讓全世界的玩家都能線上體驗。
部署流程
- 登入阿里雲資源編排控制檯
- 在左側導航欄,單擊資源棧
- 在頂部選單欄的地域下拉選單,選擇資源棧的所在地域,例如:華東1(杭州)
- 在資源棧列表頁面,單擊建立資源棧,然後在下拉選單中選擇使用Terraform
- 選擇模板錄入方式為輸入模板,並選擇模板內容為Terraform
- 編寫Terraform模板,命名為main.tf,模版內容如下,可以直接複製進去,點選下一步
variable "zone_id" {
type = string
description = <<EOT
{
"AssociationProperty": "ZoneId",
"Label": {
"zh-cn": "可用區ID",
"en": "Zone ID"
}
}
EOT
}
variable "instance_type" {
type = string
description = <<EOT
{
"Label": {
"zh-cn": "例項型別",
"en": "Instance Type"
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType"
}
EOT
default = "ecs.e-c1m2.large"
}
resource "alicloud_vpc" "vpc" {
vpc_name = "game-vpc"
cidr_block = "192.168.0.0/16"
}
resource "alicloud_vswitch" "vswitch" {
vpc_id = alicloud_vpc.vpc.id
zone_id = var.zone_id
cidr_block = "192.168.0.0/24"
}
resource "alicloud_security_group" "group" {
vpc_id = alicloud_vpc.vpc.id
}
resource "alicloud_security_group_rule" "rule" {
type = "ingress"
ip_protocol = "all"
nic_type = "intranet"
policy = "accept"
port_range = "80/80"
priority = 1
security_group_id = alicloud_security_group.group.id
cidr_ip = "0.0.0.0/0"
}
resource "alicloud_instance" "ecs" {
availability_zone = var.zone_id
security_groups = alicloud_security_group.group.*.id
instance_type = var.instance_type
system_disk_category = "cloud_essd"
image_id = "centos_7_9_x64_20G_alibase_20220824.vhd"
instance_name = "game-ecs"
vswitch_id = alicloud_vswitch.vswitch.id
internet_max_bandwidth_out = 2
user_data = <<EOF
#!/bin/bash
yum install -y httpd wget
systemctl start httpd
wget 'https://computenest-artifacts-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/1853370294850618/cn-beijing/1697533575326/2048.tgz' -O 2048.tgz
tar xvf 2048.tgz
mv 2048/* /var/www/html && rm -rf 2048
EOF
}
output "GameUrl" {
value = format("http://%s:80", alicloud_instance.ecs.public_ip)
}
- 配置模版引數:選擇ECS的例項規格以及部署的可用區
- 點選預覽模版資源可以檢視將要建立的資源資訊
- 點選建立進行2048遊戲的自動化部署
- 部署完成後,點選資源棧的輸出,可以看到2048遊戲的地址,開啟該連結即可遊玩2048了!