如何使用 Tugboat 从终端管理 DigitalOcean Droplets

介绍


如果您正在阅读本文,那么您可能熟悉如何从控制面板中管理您的DigitalOcean滴滴。

Tugboat是由 Jack Pearkes和其他贡献者撰写的令人兴奋的开源应用程序,可以用来从命令行界面管理您的滴滴。

在本指南中,我们将使用Ubuntu 14.04 VPS安装和配置Tugboat,这将作为我们其他DigitalOcean滴滴的控制滴。

内容表


如何安装Tugboat(#install)

如何安装Tugboat


通过 SSH 登录您的新滴滴,或点击滴滴页上的 Console Access 按钮。

Tugboat 是一个 Ruby 应用程序,这意味着我们可以使用 RubyGems 包管理器轻松安装它。

首先,我们需要从 Ubuntu 的默认存储库中安装 Ruby:

1sudo apt-get update
2sudo apt-get install ruby ruby-dev build-essential

现在,我们可以使用 RubyGems 安装 tugboat. 我们还会安装 system_timer 以避免以后重复通知消息:

1sudo gem install tugboat
2sudo gem install system_timer

我们现在已经安装了Tugboat在我们的系统上,让我们设置它。

如何生成API密钥


为了让Tugboat管理您的滴滴,您需要授权它通过DigitalOcean API接口访问您的帐户。

在DigitalOcean网站登录您的帐户。

在控制面板的左侧导航栏上单击 API

您应该看到一个 ** 客户 ID** 预先填充,其中包含引用您的帐户的值。

DigitalOcean Client ID

下面,如果您尚未设置 API 密钥,您将被要求生成密钥:

DigitalOcean Generate Key

您的 API 密钥将被生成. 将此密钥复制到一个安全的位置. 当您单击此页面后,它将不再可用。

您需要客户 ID 和 API 密钥来配置 Tugboat,所以请保持这个窗口打开。

初始Tugboat配置


Tugboat 包含一个初始配置命令,可以通过键入来调用:

1tugboat authorize

您将被问到一系列需要将Tugboat与您的DigitalOcean帐户关联的问题。

对于前两个问题,复制并粘贴您打开的 API 页面的值:

Enter your client key: Client_ID_from_API_page
Enter your API key: API_Key_from_API_page

接下来的三个问题涉及连接到您的所有 dropplets所需的SSH授权细节。

Enter 以接受默认 SSH 密钥路径. 根据您通常如何连接到其他 dropplets,您可能希望将 SSH 用户更改为另一个值(如 root)。

Enter your SSH key path (optional, defaults to ~/.ssh/id_rsa): 
Enter your SSH user (optional, defaults to demo): root
Enter your SSH port number (optional, defaults to 22):

接下来,您将被引导通过用于创建新滴滴的默认设置。 目前,我们将通过这些提示按 Enter来接受默认值。

1Enter your default region ID (optional, defaults to 1 (New York)): 
2Enter your default image ID (optional, defaults to 284203 (Ubuntu 12.04 x64)): 
3Enter your default size ID (optional, defaults to 66 (512MB)): 
4Enter your default ssh key ID (optional, defaults to none):

您应该收到确认您的密钥被接受的回复:

1Authentication with DigitalOcean was successful.

我们刚刚做的选择存储在您的主目录中的隐藏文件中,名为 .tugboat:

1nano ~/.tugboat

 1---
 2authentication:
 3  client_key: xxxxxxxxxxxxxxxxxxxxxx
 4  api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 5defaults:
 6  ssh_key: ""
 7  size: "66"
 8  image: "284203"
 9  region: "1"
10ssh:
11  ssh_port: "22"
12  ssh_user: root
13  ssh_key_path: /home/demo/.ssh/id_rsa

如果您需要重新生成 API 密钥,您将在 DigitalOcean 网站上重新生成后需要在这里更改。

之后,您将想要重新验证应用程序是否可以通过键入正确关联:

1tugboat verify

如果您选择修改它,则 SSH 部分应具有自我解释性。

我们将在以后讨论如何找到更改 defaults 部分所需的信息。

连接到一个Dropplet


我们现在有足够的配置来探索Tugboat。

每个拖船命令都以拖船开始,然后是行动。

让我们列出我们帐户中所拥有的滴滴:

1tugboat droplets

1irssi (ip: xxx.xxx.xxx.xx, status: active, region: 1, id: 3150xx)
2tug (ip: xxx.xxx.xxx.xxx, status: active, region: 4, id: 3372xx)
3test (ip: xxx.xxx.xxx.xx, status: active, region: 4, id: 3373xx)
4DigitalOcean20Dollar (ip: xxx.xxx.xxx.xxx, status: active, region: 4, id: 3520xx)
5archtestmail (ip: xxx.xxx.xxx.xx, status: active, region: 4, id: 4328xx)
6TugWrite (ip: xxx.xxx.xxx.xxx, status: active, region: 4, id: 4496xx)

这是类似于您的 dropplet 在 Web 界面上的屏幕,它列出了我们可以互动的每个 dropplet。

让我们用 tugboat 将 SSH 输入到我们的一个滴滴:

1tugboat ssh ourDroplet

1Droplet fuzzy name provided. Finding droplet ID...done, 3150xx (ourDroplet)
2Executing SSH (ourDroplet)...
3Warning: Identity file /home/demo/.ssh/id_rsa not accessible: No such file or directory.
4[email protected]'s password:

正如你所看到的,我们被要求提供root@ourDroplet的密码,如果我们设置了SSH密钥,我们将没有需要任何额外的互动。

走出滴滴,回到Tugboat滴滴。

整个Tugboat体验中存在的一个功能是模糊的名称匹配。这意味着Tugboat会识别任何足够明确的命令。

例如,我们可以通过键入获得相同的结果:

1tugboat drop

Tugboat将扩展 dropdropplets,并在没有任何额外输入的情况下执行。

这也适用于滴滴名称。

主管管理


您通常使用控制面板完成的所有任务都可以用Tugboat完成。

获取信息


要获取有关特定滴滴的更多信息,请键入:

tugboat info droplet_name
1Name:             irssi
2ID:               3150xx
3Status:           active
4IP:               xxx.xxx.xxx.xx
5Region ID:        1
6Image ID:         479972
7Size ID:          66
8Backups Active:   false

这大多是与 dropplets命令相同的信息,但有一些额外的字段,如图像ID、尺寸ID以及是否已启用备份。

Droplet 电源管理


我们可以通过发出相应的命令来控制我们的滴子的电源状态。

要启动当前处于下位的滴滴,键入:

tugboat start droplet_name

要重新启动一个 dropplet,类型:

tugboat restart droplet_name

要下载一滴电源,键入:

tugboat halt droplet_name

Droplet 创建和破坏


滴滴可以通过简单的键入删除:

tugboat destroy droplet_name

由于这有不可逆转的后果,您被要求在破坏滴之前确认行动:

1Droplet fuzzy name provided. Finding droplet ID...done, 4530xx (blahblah)
2Warning! Potentially destructive action. Please confirm [y/n]:

键入 yEnter 来摧毁滴滴。

要创建一个滴滴,你可以使用以下语法:

tugboat create droplet_name

没有额外的参数,您的 dropplet 将根据您的 ~/.tugboat 文件的 default 部分中的标准创建。

我们可以通过一些可选的旗帜来修改这种行为. 使用帮助命令与创建操作作为一个额外的论点来获取创建的使用细节:

1tugboat help create

 1Usage:
 2  tugboat create NAME
 3
 4Options:
 5  -k, [--keys=KEYS]  # A comma separated list of SSH key ids to add to the droplet
 6  -s, [--size=N]     # The size_id of the droplet
 7  -r, [--region=N]   # The region_id of the droplet
 8  -i, [--image=N]    # The image_id of the droplet
 9
10Create a droplet.

正如您所看到的,我们可以嵌入我们已上传到网站的任何 SSH 密钥,并为创建过程指定大小、区域和基图像。

我们将在下面讨论如何为这些参数找到合适的值。

Droplet 创建设置


我们可以通过查询网站以获取可用的选项来选择我们想要使用的设置来创建 dropplet。

若要查看尺寸列表及其相关ID,请键入:

1tugboat sizes

 1Sizes:
 2512MB (id: 66)
 31GB (id: 63)
 42GB (id: 62)
 54GB (id: 64)
 68GB (id: 65)
 716GB (id: 61)
 832GB (id: 60)
 948GB (id: 70)
1064GB (id: 69)
1196GB (id: 68)

正如您所看到的,每个尺寸都与一个id 相关联,我们使用它来参考该值。

所以,如果我们想创建一个2GB滴,我们可以发出以下命令:

tugboat create -s 62 droplet_name

一个类似的命令可用于查看可用的区域:

1tugboat regions

1Regions:
2New York 1 (id: 1)
3Amsterdam 1 (id: 2)
4San Francisco 1 (id: 3)
5New York 2 (id: 4)

将上传的 SSH 密钥嵌入到一个新的 droplet 中很容易,你可以通过发行来找到它们:

1tugboat keys

1SSH Keys:
2Work key (id: 12345)
3Home key (id: 56789)

查看可用的图像的命令略为复杂,只是因为默认情况下,它显示了您保存的快照:

1tugboat images

1My Images:
2Ubuntu Basic setup (id: 4799xx, distro: Ubuntu)
3Arch default (id: 4811xx, distro: Arch Linux)
4LAMP Ubuntu (id: 4908xx, distro: Ubuntu)
5LAMP Success (id: 5838xx, distro: CentOS)

您可以通过使用相关的 ID 选择其中任何一个作为基础图像使用。

要获得更完整的列表,包括所有预配置的分发和应用程序图像,请添加全球旗帜:

1tugboat images -g

1My Images:
2. . .
3
4Global Images:
5CentOS 5.8 x64 (id: 1601, distro: CentOS)
6CentOS 5.8 x32 (id: 1602, distro: CentOS)
7Debian 6.0 x64 (id: 12573, distro: Debian)
8Debian 6.0 x32 (id: 12575, distro: Debian)
9. . .

您将看到大量可用的图像列表,这些图像也被他们的ID引用,就像其他设置一样。

这些是我们需要改变 ~/.tugboat 配置文件中的默认设置的值的信息。

混乱的管理


若要使用snapshot命令拍摄快照,请键入:

tugboat snapshot name_of_snapshot droplet_to_snapshot

要更大一个滴滴,你需要为重大命令提供新的尺寸标准。

tugboat resize droplet_name -s size_ID

要将根密码重置到一滴,只需发出密码重置命令:

tugboat password-reset droplet_name

您将收到一封电子邮件,包含已设置为滴滴的新密码。

如何使用帮助系统


Tugboat 包含一个很好的帮助系统. 您可以随时通过键入访问一般帮助:

1tugboat help

这将为您提供您可以使用的每个命令的列表。

若要获得更精细的帮助,请在帮助后指定命令名称。

例如,若要获取授权命令的帮助,请键入:

1tugboat help authorize

其他考量


如何设置SSH键


像大多数使用 SSH 的应用程序一样,Tugboat 受益于正确配置的 SSH 密钥。

如果您已经创建了公钥和私钥对,并将公钥上传到您的 DigitalOcean 页面,用于创建滴滴,您可以将私钥复制到您的 Tugboat 滴滴。

要做到这一点,请登录您使用的计算机来访问您的 DigitalOcean 滴滴. 转到您的 ssh 配置目录:

1cd ~/.ssh

使用 scp 将私钥复制到 Tugboat 滴:

scp id_rsa tugboat_username@tugboat_droplet_ip:/home/tugboat_username/.ssh/

登录您的Tugboat dropplet. 更改id_rsa文件的所有权,以匹配您正在使用的Tugboat用户名。

sudo chown tugboat_username:tugboat_username ~/.ssh/id_rsa

您现在应该能够连接到使用该密钥而没有密码创建的滴滴:

tugboat ssh example_droplet

请记住更改配置文件以使用此密钥创建新滴滴!

如果您尚未这样做,请遵循本文以 设置密钥对并将公共密钥上传到您的 DigitalOcean 页面

如何使用Tugboat的屏幕


一个非常有用的Tugboat工具是屏幕,这是一个终端多元化器。

简单地说,这个工具允许您从单个窗口管理多个终端会话,您可以创建和切换多个窗口,每一个都是独立的壳会话。

这在处理多个SSH会话时尤其方便,这正是Tugboat允许你做的事情。

在 Ubuntu 上安装屏幕通过键入:

1sudo apt-get update
2sudo apt-get install screen

通过键入开始应用程序:

1screen

您现在正在使用实际上在屏幕内运行的终端会话。

您可以通过键入此处连接到 dropplet:

tugboat ssh droplet1

现在,通过键入创建一个新窗口:

1Ctrl-a c

也就是说,握住控制键,然后按a键,然后按c键,从而创建一个新的窗口。

在此窗口中连接到一个新的滴滴,键入:

tugboat ssh droplet2

您可以通过键入窗口之间切换:

1Ctrl-a n

您可以通过键入破坏窗口:

1Ctrl-a k

若要了解更多有关 如何使用屏幕的信息,请点击此处。

结论


Tugboat 是一个很好的工具来管理您的滴滴,而不必离开终端环境. 它提供了一个统一的界面来跟踪您的滴滴和管理您的会话。

正确配置Tugboat可以消除必须对主机文件进行连续维护的麻烦,或者在终端和浏览器窗口之间反转。

如果您发现软件有任何问题或希望为该项目做出贡献,请访问 Github上的Tugboat页面

感谢杰克·皮尔克斯(Jack Pearkes)和Tugboat团队为DigitalOcean社区提供如此宝贵的工具!

By Justin Ellingwood
Published At
Categories with 技术
comments powered by Disqus