给一台按量 ECS 塞了个 2048,半小时的活儿干了一晚上
起因很小:成长中心有个任务,要在华北-北京四开一台 ECS,把一个 2048 小游戏挂到公网上,能打开就算过。我寻思这能有多难,页面是现成的单文件 HTML,机器上装个 Nginx 把文件放好,半小时足够了。结果从晚上九点多一直折腾到快十二点,真正花时间的全是些没想到的地方。
买机器本身没什么好说的。按量计费,1 核 2G,镜像选的 CentOS 7.9 64 位,价格那栏写着 0.1518 元一小时。轮到系统盘的时候我还纠结了一下,默认 40G,能不能改成 10G?算了笔账,一小时也就省一两分钱,纯属抠门心理,最后还是留了 40G。
第一个坑出在用户数据上。cloud-init 脚本我提前写好了,本想开机就把 Nginx 装上、页面放好,省得再登机器。谁知道控制台那个文本框死活不吃我本地的剪贴板,复制一点问题没有,就是粘不进去。后来把脚本砍到只剩七行,页面文件先搁到一个能公开下载的地址,脚本里留一行 curl,让机器开机后自己去把页面拉下来。剩下的部分只能手敲,敲错一个字母就得对着屏幕找半天。
登录方式选了密钥对,下单时图省事,买完才想起来一个副作用:这台机器压根没有 root 密码。后来想从网页端的 CloudShell 跳进去,SSH 是连上了,然后就卡在 password 提示上——没有密码,输什么都不对。只好又跑去 DEW 里把 KeyPair-9eeb 的私钥重新下载了一份到自己电脑,chmod 600 改好权限,ssh -i 指定密钥直连,这才算进了门。登录日志里还有一条失败记录,就是刚才在 CloudShell 里瞎试密码留下的。
但进门之前,更长的时间耗在另一件事上:页面在外网死活打不开。我第一反应是脚本没跑起来,因为总记着 CentOS 的默认源里没有 nginx,得先装 EPEL 才能装上。登进去之后我把那条修复命令整条跑了一遍,装 EPEL、装 nginx,终端回了两行「已安装并且是最新版本」。也就是说,开机脚本从头到尾都干活了,nginx 早就在机器上,我白怀疑了它一晚上。
真正的问题土得很。一是默认安全组没放通 80 端口,外面的请求根本进不来,这个我在控制台补了一条入方向规则。二是 nginx 需要重启一下,顺手把 firewalld 也停了。弄完在机器上 curl 了一下 127.0.0.1,返回 200;再回外网打开那个 /hc-activity/index.html,2048 的棋盘出来了,分数栏是 0,方向键能动。
机器到现在还没删,页面还挂在那儿,因为后面还有个提交动作没走完。费用中心最后会显示多少我还没去看,按这个单价算,一晚上也就两三块钱。倒是这一趟下来,命令总共没敲几行,时间全花在剪贴板、密码和安全组这种地方——下次再有人跟我说「不就部署个静态页面吗」,我大概会笑一下。
- 点赞
- 收藏
- 关注作者
评论(0)