跟 Toy 玩自架服务器:创建 DigitalOcean Droplet
在笔者的印象中,DigitalOcean 貌似是最先以 SSD 作为存储介质的 VPS 提供商。如今,它已然成为全球第二大面向 Web 的主机公司。本篇笔者就来谈一谈如何创建 DigitalOcean 的 Droplet 吧。
准备工作
-
笔者在第一篇所提到的主要工具,你依然需要。
-
因为我们通过 Python 与 DigitalOcean 的 API 进行交互,所以在你的系统中还需要有 dopy 这个库:
pip install dopy
-
登录 DigitalOcean 管理界面,点击 API → Generate New Token 来生成一个 API 访问 Token,并记录备用。如果你还没有 DigitalOcean 帐号,那么要先注册一个。
-
确认 SSH 公钥
/root/.ssh/id_rsa.pub
存在。
创建 Droplet
在 DigitalOcean 的语境中,服务器实例被称为 Droplet,下面就让我们来创建它:
-
使用 Git 克隆 Selfhosted Server。
-
打开
group_vars/local.yml
,转到以下行:droplet: id: 0 server_name: toyland ssh_key_name: toyland size_id: 512mb region_id: sgp1 image_id: debian-8-x64
各选项说明:
id
:已创建 Droplet 的 ID,暂时设为 0,待创建完毕再补上。server_name
:Droplet 的名称,可任意指定。ssh_key_name
:SSH 公钥的名称。size_id
:内存大小,跟付费计划相关,此处为入门型。-
region_id
:数据中心位置,此处为新加坡。为了获得更佳的访问速度,你可能想要更改此位置,可通过如下命令获得其它区域:curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer <你的 API Token>" "https://api.digitalocean.com/v2/regions" | jq .
-
image_id
:操作系统类型,此处为 Debian 8 64 位。
-
打开
site-do.yml
,定位到第二个 roles,暂时保留其下的 4 个任务即可,其它可全部注释掉:roles: - common - unattendedupgrades - fail2ban - git-client
-
执行:
./play-site.sh
根据提示输入 1,然后再输入 API Token。待脚本执行完毕即可投入使用了。
一点比较
经过对 Vultr、Linode、以及 DigitalOcean 的使用,笔者感觉在付费计划上,Vultr 显得更加灵活(他们甚至推出了 $2.5/月的沙箱计划);以 $5/月为例,DigitalOcean 的配置明显要低一些(内存仍然为 512Mb)。网站的管理界面,Vultr 和 DigitalOcean 的设计看起来更加现代,而 Linode 就比较老土了。在数据中心位置方面,笔者目前主要使用东京和新加坡,感觉前者的访问速度要好于后者。