一鍵雲部署:ROS的Terraform託管服務助你輕鬆上線2048經典遊戲

AliCloudROS發表於2024-05-29

在現代雲端計算環境中,自動化部署已經成為一項重要的任務。Terraform,作為HashiCorp公司的一款開源工具,以其強大的基礎設施即程式碼(IaC)能力,使得我們能夠輕鬆管理和部署各種雲資源。

阿里雲資源編排服務(Resource Orchestration Service,ROS)是一種簡單易用的雲端計算資源自動化部署服務,提供了Terraform託管服務。因此您可以直接在ROS中部署Terraform模版。在這篇文章中,我們將詳細介紹如何使用ROS的Terraform託管服務一鍵部署經典的2048小遊戲。

首先,讓我們瞭解一下什麼是2048遊戲。2048是一款基於數字的益智遊戲,玩家需要在4x4的格子中滑動數字方塊,每移動一次,所有方塊都會向滑動的方向靠攏,同時空白位置會隨機出現一個2或4,目標是合併出2048這個數字。現在,我們要將這個遊戲部署到雲端,讓全世界的玩家都能線上體驗。

部署流程

  1. 登入阿里雲資源編排控制檯
  2. 在左側導航欄,單擊資源棧
  3. 在頂部選單欄的地域下拉選單,選擇資源棧的所在地域,例如:華東1(杭州)
  4. 在資源棧列表頁面,單擊建立資源棧,然後在下拉選單中選擇使用Terraform
  5. 選擇模板錄入方式為輸入模板,並選擇模板內容為Terraform
  6. 編寫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)
}
  1. 配置模版引數:選擇ECS的例項規格以及部署的可用區
  2. 點選預覽模版資源可以檢視將要建立的資源資訊
  3. 點選建立進行2048遊戲的自動化部署
  4. 部署完成後,點選資源棧的輸出,可以看到2048遊戲的地址,開啟該連結即可遊玩2048了!

相關文章