如何使用Tugboat从终端管理DigitalOceanDroplets
介绍
如果您正在阅读本文,那么您可能熟悉如何从控制面板中管理您的 DigitalOcean 液滴。
Tugboat 是一个令人兴奋的开源应用程序,由 Jack Pearkes 和其他贡献者编写,可用于从命令行界面管理您的液滴。
在本指南中,我们将使用 Ubuntu 14.04 VPS 安装和配置 Tugboat。 这将充当我们其他 DigitalOcean 液滴的“控制”液滴。
目录
如何安装拖船
通过 SSH 或单击 Droplet 页面上的 Console Access 按钮登录到您的新 droplet。
Tugboat 是一个 Ruby 应用程序,这意味着我们可以使用 RubyGems 包管理器轻松安装它。
首先,我们需要从 Ubuntu 的默认存储库安装 Ruby:
sudo apt-get update sudo apt-get install ruby ruby-dev build-essential
现在,我们可以使用 RubyGems 安装 tugboat。 我们还会安装 system_timer 以避免稍后重复通知消息:
sudo gem install tugboat sudo gem install system_timer
现在我们的系统上安装了 Tugboat。 让我们设置它。
如何生成 API 密钥
为了让 Tugboat 管理您的 droplets,您必须授权它通过 DigitalOcean API 接口访问您的帐户。 这是一个简单的程序。
在 DigitalOcean 网站上登录您的帐户。
单击控制面板左侧导航栏上的 API。
您应该会看到一个 Client ID 预填充了一个引用您帐户的值。
[[File:“%3Ca]] https://assets.digitalocean.com/articles/tugboat/client_id.png ” alt =“DigitalOcean 客户端 ID” />
在此下方,如果您尚未设置 API 密钥,您将被告知生成密钥:
[[File:“%3Ca]] https://assets.digitalocean.com/articles/tugboat/generate_key.png ” alt =“DigitalOcean 生成密钥” />
将生成您的 API 密钥。 将此密钥复制到安全位置。 一旦您点击离开此页面,您将再次使用 not。 如果丢失密钥,您将需要重新生成密钥。
您需要 Client ID 和 API 密钥 来配置 Tugboat,因此请保持此窗口打开。
初始拖船配置
Tugboat 包含一个初始配置命令,可通过键入以下命令调用:
tugboat authorize
您将被问到一系列将 tugboat 与您的 DigitalOcean 帐户关联所必需的问题。
对于前两个问题,从您打开的 API 页面复制并粘贴值:
输入您的客户端密钥: Client_ID_from_API_page输入您的 API 密钥: API_Key_from_API_page
接下来的三个问题涉及连接到所有 Droplet 所需的 SSH 授权详细信息。
按 Enter 接受默认的 SSH 密钥路径。 根据您通常连接到其他 Droplet 的方式,您可能希望将 SSH 用户更改为另一个值(例如 root)。 按 Enter 接受默认的 SSH 端口,除非您使用不同的端口连接到您的 Droplet。
输入您的 SSH 密钥路径(可选,默认为 ~/.ssh/id_rsa):输入您的 SSH 用户(可选,默认为 demo): root输入您的 SSH 端口号(可选,默认为 22):
接下来,您将了解用于创建新液滴的默认设置。 现在,我们将通过这些提示按 Enter 来接受默认值。
Enter your default region ID (optional, defaults to 1 (New York)): Enter your default image ID (optional, defaults to 284203 (Ubuntu 12.04 x64)): Enter your default size ID (optional, defaults to 66 (512MB)): Enter your default ssh key ID (optional, defaults to none):
您应该会收到确认您的密钥已被接受的回复:
Authentication with DigitalOcean was successful.
我们刚刚所做的选择存储在您的主目录中名为 .tugboat
的隐藏文件中:
nano ~/.tugboat
--- authentication: client_key: xxxxxxxxxxxxxxxxxxxxxx api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx defaults: ssh_key: "" size: "66" image: "284203" region: "1" ssh: ssh_port: "22" ssh_user: root ssh_key_path: /home/demo/.ssh/id_rsa
如果您需要重新生成 API 密钥,则需要在 DigitalOcean 网站上重新生成之后在此处进行更改。
之后,您将需要重新验证应用程序是否可以通过键入以下内容正确关联:
tugboat verify
如果您选择修改 SSH 部分,它应该是不言自明的。
稍后我们将介绍如何找到更改 defaults 部分所需的信息。
连接到 Droplet
我们现在有足够的配置来探索 Tugboat。
每个拖船命令都以 tugboat
开头,然后是一个动作。
让我们列出我们帐户中的液滴:
tugboat droplets
irssi (ip: xxx.xxx.xxx.xx, status: active, region: 1, id: 3150xx) tug (ip: xxx.xxx.xxx.xxx, status: active, region: 4, id: 3372xx) test (ip: xxx.xxx.xxx.xx, status: active, region: 4, id: 3373xx) DigitalOcean20Dollar (ip: xxx.xxx.xxx.xxx, status: active, region: 4, id: 3520xx) archtestmail (ip: xxx.xxx.xxx.xx, status: active, region: 4, id: 4328xx) TugWrite (ip: xxx.xxx.xxx.xxx, status: active, region: 4, id: 4496xx)
这类似于 Web 界面中的 Droplet 屏幕。 它列出了我们可以与之交互的每个液滴。
让我们使用 tugboat 通过 SSH 连接到我们的一个 droplets:
tugboat ssh ourDroplet
Droplet fuzzy name provided. Finding droplet ID...done, 3150xx (ourDroplet) Executing SSH (ourDroplet)... Warning: Identity file /home/demo/.ssh/id_rsa not accessible: No such file or directory. root@xxx.xxx.xxx.xx's password:
如您所见,我们被要求输入 root@ourDroplet
的密码。 如果我们设置了 SSH 密钥,我们将无需任何额外交互即可连接。
退出水滴以返回拖船水滴。
Tugboat 体验中存在的一个功能是“模糊名称匹配”。 这意味着 Tugboat 将识别任何足够明确的命令。
例如,我们可以通过键入以下内容达到相同的结果:
tugboat drop
Tugboat 将扩展 drop
以表示 droplets
并在没有任何额外输入的情况下执行它。
这也适用于液滴名称。
液滴管理
您通常使用控制面板完成的所有任务都可以使用 Tugboat 完成。
检索液滴信息
要获取有关特定液滴的更多信息,请键入:
拖船信息droplet_name
Name: irssi ID: 3150xx Status: active IP: xxx.xxx.xxx.xx Region ID: 1 Image ID: 479972 Size ID: 66 Backups Active: false
这与 droplets
命令提供的信息基本相同,但还有一些附加字段,例如图像 ID、大小 ID 以及是否启用备份。
液滴电源管理
我们可以通过发出适当的命令来控制我们的液滴的开机状态。
要引导当前关闭的 Droplet,请键入:
拖船开始droplet_name
要重新启动 Droplet,请键入:
拖船重启droplet_name
要关闭 Droplet,请键入:
拖船停止droplet_name
液滴的产生和破坏
只需键入以下内容即可删除液滴:
拖船破坏droplet_name
因为这具有不可逆转的后果,所以要求您在液滴被破坏之前确认该操作:
Droplet fuzzy name provided. Finding droplet ID...done, 4530xx (blahblah) Warning! Potentially destructive action. Please confirm [y/n]:
键入 y 和 Enter 以破坏液滴。
要创建 Droplet,您可以使用以下语法:
拖船创建droplet_name
如果没有其他参数,您的 droplet 将根据 ~/.tugboat
文件的 default 部分中的条件创建。
我们可以通过传递一些可选标志来修改这种行为。 使用带有“create”操作的“help”命令作为附加参数来获取create的使用细节:
tugboat help create
Usage: tugboat create NAME Options: -k, [--keys=KEYS] # A comma separated list of SSH key ids to add to the droplet -s, [--size=N] # The size_id of the droplet -r, [--region=N] # The region_id of the droplet -i, [--image=N] # The image_id of the droplet Create a droplet.
如您所见,我们可以嵌入我们已上传到站点的任何 SSH 密钥,并为创建过程指定大小、区域和基本映像。
我们将在下面讨论如何为这些参数找到合适的值。
液滴创建设置
我们可以通过查询站点的可用选项来选择要用于创建液滴的设置。
要查看尺寸列表及其相关 ID,请键入:
tugboat sizes
Sizes: 512MB (id: 66) 1GB (id: 63) 2GB (id: 62) 4GB (id: 64) 8GB (id: 65) 16GB (id: 61) 32GB (id: 60) 48GB (id: 70) 64GB (id: 69) 96GB (id: 68)
如您所见,每个尺寸都与一个 id 相关联,我们使用它来引用该值。
因此,如果我们想创建一个 2GB 的 droplet,我们可以发出以下命令:
tugboat create -s 62 droplet_name
可以使用类似的命令来查看可用区域:
tugboat regions
Regions: New York 1 (id: 1) Amsterdam 1 (id: 2) San Francisco 1 (id: 3) New York 2 (id: 4)
在新的 Droplet 中嵌入上传的 SSH 密钥很容易。 您可以通过发出以下命令找到它们:
tugboat keys
SSH Keys: Work key (id: 12345) Home key (id: 56789)
查看可用图像的命令稍微复杂一些,只是因为默认情况下,它会显示您保存的快照:
tugboat images
My Images: Ubuntu Basic setup (id: 4799xx, distro: Ubuntu) Arch default (id: 4811xx, distro: Arch Linux) LAMP Ubuntu (id: 4908xx, distro: Ubuntu) LAMP Success (id: 5838xx, distro: CentOS)
您可以使用关联的 ID 选择其中的任何一个以用作基本映像。
要获得更完整的列表,包括所有预配置的发行版和应用程序映像,请添加全局标志:
tugboat images -g
My Images: . . . Global Images: CentOS 5.8 x64 (id: 1601, distro: CentOS) CentOS 5.8 x32 (id: 1602, distro: CentOS) Debian 6.0 x64 (id: 12573, distro: Debian) Debian 6.0 x32 (id: 12575, distro: Debian) . . .
您将看到大量可用图像。 这些也由它们的 ID 引用,就像其他设置一样。
这些是我们需要更改 ~/.tugboat
配置文件中“默认”设置值的信息。
杂项管理
要使用 snapshot
命令拍摄快照,请键入:
拖船快照name_of_snapshot droplet_to_snapshot
要调整液滴的大小,您需要为 resize
命令提供新的大小标准。 您的 Droplet 必须打开电源才能成功运行:
拖船调整大小droplet_name -s size_ID
要重置 Droplet 的 root 密码,只需发出 password-reset
命令:
拖船密码重置droplet_name
您将收到一封电子邮件,其中包含已为 Droplet 设置的新密码。
如何使用帮助系统
拖船包括一个很好的帮助系统。 您可以随时通过键入以下内容访问一般帮助:
tugboat help
这将为您提供可以使用的每个命令的列表。
要获得更细粒度的帮助,请在 help
之后指定命令名称。
例如,要获得 authorize
命令的帮助,请键入:
tugboat help authorize
其他注意事项
如何设置 SSH 密钥
与大多数使用 SSH 的应用程序一样,Tugboat 受益于正确配置的 SSH 密钥。
如果您已经创建了一个公钥和私钥对并将公钥上传到您的 DigitalOcean 页面以用于创建液滴,您可以将私钥复制到您的 Tugboat 液滴。
为此,请登录您用于访问 DigitalOcean 液滴的计算机。 切换到您的 ssh 配置目录:
cd ~/.ssh
使用 scp 将私钥复制到 Tugboat droplet:
scp id_rsa tugboat_username @ tugboat_droplet_ip :/home/ tugboat_username /.ssh/
登录到您的 Tugboat droplet。 更改 id_rsa
文件的所有权以匹配您在 Tugboat 中使用的用户名。
sudo chown tugboat_username : tugboat_username ~/.ssh/id_rsa
您现在应该能够连接到使用该密钥创建的液滴,而无需密码:
tugboat ssh example_droplet
请记住更改您的配置文件以使用此密钥创建新的液滴!
如果您还没有这样做,请按照本文设置密钥对并将公钥上传到您的DigitalOcean页面。
如何在拖船上使用屏幕
一个对 Tugboat 非常有用的工具是 screen
,一个终端多路复用器。
简而言之,此工具允许您从单个窗口管理多个终端会话。 您可以在多个“窗口”之间创建和切换,每个“窗口”都是一个独立的 shell 会话。
这在处理多个 SSH 会话时特别方便,这正是 Tugboat 允许您做的事情。
通过键入以下内容在 Ubuntu 上安装屏幕:
sudo apt-get update sudo apt-get install screen
通过键入以下内容启动应用程序:
screen
您现在正在使用实际在 screen
中运行的终端会话。
您可以通过键入以下内容在此处连接到液滴:
拖船ssh droplet1
现在,通过键入以下内容创建一个新窗口:
Ctrl-a c
即按住 control
键,然后按 a
键,然后按 c
键。 这将创建一个新窗口。
通过键入以下内容连接到此窗口中的新液滴:
拖船 ssh droplet2
您可以通过键入以下内容在窗口之间切换:
Ctrl-a n
您可以通过键入以下内容来销毁窗口:
Ctrl-a k
要了解有关如何使用屏幕的更多信息,请单击此处。 要了解 如何使用 tmux,一个类似的终端多路复用器,请单击此处。
结论
Tugboat 是无需离开终端环境即可管理液滴的绝佳工具。 它提供了一个统一的界面来跟踪您的 Droplet 并管理您的会话。
正确配置 Tugboat 消除了必须对主机文件执行持续维护或在终端和浏览器窗口之间来回切换的麻烦。
如果您发现软件有任何问题或希望为项目做出贡献,请访问 Github 上的 Tugboat 页面。
感谢 Jack Pearkes 和 Tugboat 团队为 DigitalOcean 社区提供了如此宝贵的工具!