在现代云计算环境中,自动化部署已经成为一项重要的任务。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了!



一键云部署:ROS的Terraform托管服务助你轻松上线2048经典游戏的更多相关文章

  1. IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈项目有来商城云环境的部署方式

    一. 前言 最近有些童鞋对开源微服务商城项目 youlai-mall 如何部署到线上环境以及项目中 的Dockerfile 文件有疑问,所以写了这篇文章做个答疑以及演示完整的微服务项目发布到线上的流程 ...

  2. 实践案例丨教你一键构建部署发布前端和Node.js服务

    如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候. 例如你有10个项目,前后端 ...

  3. Python开发入门与实战17-新浪云部署

    17. 新浪云部署 上一章节我们介绍了如何在本地windows服务器部署python django的网站,本章我们简要说明一下如何把python django工程部署到云服务上. 本章章节我们描述如何 ...

  4. 阿里云部署Docker(5)----管理和公布您的镜像

    出到这节,我在百度搜索了一下"阿里云部署Docker",突然发现怎么会有人跟我写的一样呢?哦,原来是其它博客系统的爬虫来抓取,然后也不会写转载自什么什么的.所以,我最终明确为什么那 ...

  5. 四种方案:将OpenStack私有云部署到Hadoop MapReduce环境中

    摘要:OpenStack与Hadoop被誉为继Linux之后最有可能获得巨大成功的开源项目.这二者如何结合成为更猛的新方案?业内给出两种答案:Hadoop跑在OpenStack上或OpenStack部 ...

  6. 基于 SOA 概念 RPC 框架 的 消息中心 云部署 设计 漫谈

    一.背景 假设有一个系统的最大并发量有2000TPS左右.同时该系统有闲时和忙时,希望可以随时进行拓展和削减服务能力,以节省服务器费用开销. 该系统能提供站内消息.短信.app消息.邮箱的一个消息系统 ...

  7. API 开发平台 dreamfactory,参考SAWAGGER,国外厂家,开源,本地与云部署

    API 开发平台,参考SAWAGGER,国外厂家,本地与云部署:参考  http://swagger.io/commercial-tools/ 1.dreamfactory 梦工厂公司  https: ...

  8. 分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  9. Hexo 博客 之 腾讯云部署过程

    写在前面 Hexo 博客搭好了有差不多两周时间了,这期间走了很多弯路,跳了很多坑.一些坑自己 bing 到了答案,找到了解决方法,一些坑则是自己摸索出来的解决方法.现在准备写几篇关于搭建流程.搭建过程 ...

  10. 阿里云部署django实现公网访问

    本博的主要目的是对阿里云部署django实现公网访问进行一次简单的记录,方便日后查询. 内容目录: (1)申请阿里云服务器及安全组配置 (2)实现ssh远程控制 (3)实现ftp文件传输 (4)安装p ...

随机推荐

  1. mm系列权重文件瘦身

    瘦身脚本: (会在resnet50.pth文件的同级目录下生成一个resnet50_thin.pth) import os import torch root_dir = os.getcwd() de ...

  2. 力扣609(java&python)-在系统中查找重复文件(中等)

    给你一个目录信息列表 paths ,包括目录路径,以及该目录中的所有文件及其内容,请你按路径返回文件系统中的所有重复文件.答案可按 任意顺序 返回. 一组重复的文件至少包括 两个 具有完全相同内容的文 ...

  3. 如何在 Anolis 8上部署 Nydus 镜像加速方案?

    简介: 手把手教你在 Anolis OS 上部署 Nydus! 在上一篇文章中详细介绍Anolis OS 是首个原生支持镜像加速 Linux 内核,Nydus 镜像加速服务重新优化了现有的 OCIv1 ...

  4. 几种常见的MySQL/PolarDB-MySQL回收表空间方法对比

    简介: 当我们频繁的删除表中的数据后,碎片就会变多,有经验的DBA就会回收表空间,回收表空间有好几种方式,我们要选择哪一种呢? 背景 为什么需要回收表空间?任何一个存储或您购买的实例规格都有容量限制, ...

  5. 阿里的 RocketMQ 如何让双十一峰值之下 0 故障?

    简介: 2020 年双十一交易峰值达到 58.3 W 笔/秒,消息中间件 RocketMQ 继续数年 0 故障丝般顺滑地完美支持了整个集团大促的各类业务平稳. 作者 | 愈安来源 | 阿里巴巴云原生公 ...

  6. Mysql带条件取多条随机记录

    有个文章段落表part,有两种类型的段落,即part_type取1或2,要从表中随机取多条任意类型的段落,比如3条. 方法一 ORDER BY后接RAND() select * from part w ...

  7. Springboot+Prometheus+grafana 制作自己的业务监控

    目录 知识储备 系统架构 开始实现 生成业务指标 经典实现方法 自己的实现方案 引入依赖 配置文件 注册自己的指标[我这里用的是guaua格式数据] 写入指标 效果展示 配置prometheus 抓取 ...

  8. 生成带重复的笛卡尔乘积过程 Cartesian Product with Repetition

    目录 What is Cartesian Product with Repetition Code Demo What is Cartesian Product with Repetition 比如说 ...

  9. 一分钟部署 Llama3 中文大模型,没别的,就是快

    前段时间百度创始人李彦宏信誓旦旦地说开源大模型会越来越落后,闭源模型会持续领先.随后小扎同学就给了他当头一棒,向他展示了什么叫做顶级开源大模型. 美国当地时间4月18日,Meta 在官网上发布了两款开 ...

  10. python3解析FreeSWITCH会议室列表信息

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Python版本:3.9.12 进行FreeSWITCH会议室相关功能开发过程中,会遇到需要解析会议室列表信息并进行 ...