使用Linux命令行管理DigitalOcean VPS水滴

使用Linux命令行管理DigitalOcean VPS水滴

DigitalOcean是云VPS主机市场中最炙手可热的新生儿。虽然没有提供像Amazon之类一样的综合服务业务,但DigitalOcean定位于中小型企业和开发者,已经成为基于Linux的最佳云VPS服务的强有力竞争者,这都得归功于它们具有竞争力的价格和用户友好的管理界面。

不管什么时候,当你需要一个面向网络的服务器用于你的个人项目,你都可以全速开动一个“水滴”(DigitalOcean中VPS实例的昵称),也可以在你不需要时杀掉它,没必要为了让你的VPS保持运作而烧光了你的钱袋。尽管DigitalOcean基于网络的管理界面已经十分高效,但对于那些命令行界面的死忠派,它还是提供了基于命令行界面的水滴管理工具,它叫tugboat。多亏了这个命令行工具,所有复杂的水滴管理任务都可以简单地转变成一个脚本来完成。

在本文中,我打算讲述怎样使用tugboat来从命令行对DigitalOcean水滴进行管理。

在Linux上安装tugboat

在Debian,Ubuntu或者Linux Mint上安装tugboat:


  1. $ sudo apt-get install ruby-dev
  2. $ sudo gem install tugboat

在Fedora上安装tugboat:


  1. $ sudo yum install ruby-devel
  2. $ sudo gem install tugboat

要在CentOS上安装tugboat,首先安装或升级到最新的Ruby,因为在CentOS 6.5以及更早的版本上,默认的Ruby不满足Tugboat所需的最小版本(1.9及更高版本)。安装Ruby 1.9及更高版本后,请按如下方式安装tugboat。


  1. $ sudo gem install tugboat

tugboat首次使用配置

在安装完后,就该进行一次配置,其中包括授权tugboat访问DigitalOcean帐号。

转到https://cloud.digitalocean.com/api_access,并创建新的API密钥,记录客户ID和API密钥。

通过运行以下命令来启动授权过程:


  1. $ tugboat authorize

在提示你输入客户ID和API密钥时,请输入。它会询问几个其它问题,目前你可以接受默认的回答。我们将会在后面自定义默认设置。

现在,让我们自定义默认水滴设置,以反映你典型的使用状况。要做到这一点,首先检查水滴提供的可用设置项(如,可用的镜像、区域、大小)。

运行以下命令,它会列出可用的水滴镜像。选取使用一个默认镜像,并记录相关的ID。


  1. $ tugboat images --global

类似,从可用区域中选取一个默认的地理位置:


  1. $ tugboat regions

同时,从可用的RAM大小中选择一个默认的水滴大小:


  1. $ tugboat sizes

现在,把你的默认选择放到~/.tugboat中。例如,我在这里自定义了默认设置:区域在纽约,系统是Ubuntu 14.04,内存512MB。如果你想要通过密钥验证启用SSH,设置“ssh_user”为root,这个我很快会讲到。


  1. $ vi ~/.tugboat


  1. ---
  2. authentication:
  3. client_key: XXXXXXXXXXXXXXXXXXX
  4. api_key: XXXXXXXXXXXXXXXXXXXX
  5. ssh:
  6. ssh_user: root
  7. ssh_key_path: /home/dev/.ssh/id_rsa
  8. ssh_port: '22'
  9. defaults:
  10. region: '4'
  11. image: '3240036'
  12. size: '66'
  13. ssh_key: ''
  14. private_networking: 'false'
  15. backups_enabled: 'false'

创建并添加SSH密钥到DigitalOcean

要访问水滴实例,一个安全的方式是通过密钥验证的SSH连接到该实例。

事实上,你可以通过使用DigitalOcean来注册SSH公钥,为你的水滴实现自动启用密钥验证。下面告诉你怎么做。

首先,生成一个公/私密钥对(如果你还没有)。


  1. $ ssh-keygen -t rsa -C "your@emailaddress.com"

假设生成的密钥对由~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)构成,去将你的公钥上传吧,命令如下:


  1. $ tugboat add-key [name-of-your-key]

你可以任意给你的密钥命名(如,“my-default-key”)。当出现提示时,输入公钥路径(如,/home/user/.ssh/id_rsa.pub)。在密钥上传完成后,运行以下命令来验证密钥是否正确添加:


  1. $ tugboat keys

密钥也应该出现在DigitalOcean的SSH密钥页。如果你想要密钥自动使用到水滴中,添加密钥ID到~/.tugboat中。


  1. ssh_key: '182710'

Tugboat的基本用法

这里列出了tugboat命令行的一些基本使用情况。

  1. 使用默认设置创建新水滴。

    
    
    1. $ tugboat create
  2. 列出所有活动水滴。
    
    
    1. $ tugboat droplets
  3. 显示水滴的信息。
    
    
    1. $ tugboat info

  1. 关闭水滴,并移除镜像。

    
    
    1. $ tugboat destroy
  2. 关闭水滴,但保持镜像
    
    
    1. $ tugboat halt
  3. 为水滴创建快照,水滴必须先关闭。
    
    
    1. $ tugboat snapshot
  4. 调整水滴大小(增加或减少RAM大小),水滴必须先关闭。
    
    
    1. $ tugboat resize -s

  如果你想要了解特定命令的更多选项,运行:


  1. $ tugboat help <command>

排障

  1. 当我运行tugboat命令时,它出现以下错误。

    
    
    1. /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': /usr/lib/ruby/gems/1.8/gems/tugboat-0.2.0/lib/tugboat/cli.rb:12: syntax error, unexpected ':', expecting kEND (SyntaxError)

    Tugboat要求Ruby 1.9及更高版本,你需要升级Ruby来解决该问题。对于CentOS,请参考此教程

  2. 当我试着用gem来安装Tugboat时,出现了下面的错误。
    
    
    1. /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json/pure (LoadError)

  安装以下gem来修复该问题。


  1. $ sudo gem install json_pure

原文发布时间:2014-09-03

本文来自云栖合作伙伴“linux中国”

时间: 2024-10-26 03:56:17

使用Linux命令行管理DigitalOcean VPS水滴的相关文章

如何在Linux上使用命令行管理密码

如何在Linux上使用命令行管理密码 在基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码.有各种各样的在线或离线服务或者软件工具用于完成此类事情,而这些工具因复杂程度.用户界面或者目标环境(如企业或终端用户)的不同而各不相同.例如,有一些是为终端用户开发基于图形化的密码管理器,如KeePass(X). 对于那些不想要依赖图形化进行密码管理的用户,笔者将会讲述如何在命令行下使用 pass来管理密码,这是一个简单的用于命令行管理密码的工具. 该密

你值得了解的 10 个有趣的 Linux 命令行小技巧

我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作. 当我们发现使用 Linux 的新技巧时,尤其是像我这样的命令行极客,我们总会感到非常来劲. 建议阅读: 5 有趣的 Linux 命令行技巧 - 第一部分 而且我们也会很想与数百万 Linux 用户分享新学到的实践或命令,特别是那些还在使用自己的方式操作这个令人兴奋的操作系统的新手们. 建议阅读: 10 个对新手

Windows Azure云服务用命令行管理云端

几个星期前,我发表了一篇关于Windows Azure 云服务的博客.我正在挖掘新的东西,并且在Mac,PC和Linux(我更喜欢Ubuntu)上做着不同的尝试.作为很长一段时间的PowerShell和命令行的粉丝,我一直在寻找在"文本模式"中处理事务的方法,以及脚本站点的创建和部署. 原来有一大堆用命令行访问Azure的方法-比我想象的还多.有一个基于JSON的Web API,这会让那些工具终止对话.如果你想的话,你当然可以直接调用那些API,但是命令行工具确实非常有趣. Windo

又一波你可能不知道的 Linux 命令行网络监控工具

又一波你可能不知道的 Linux 命令行网络监控工具 对任何规模的业务来说,网络监控工具都是一个重要的功能.网络监控的目标可能千差万别.比如,监控活动的目标可以是保证长期的网络服务.安全保护.对性能进行排查.网络使用统计等.由于它的目标不同,网络监控器使用很多不同的方式来完成任务.比如对包层面的嗅探,对数据流层面的统计数据,向网络中注入探测的流量,分析服务器日志等. 尽管有许多专用的网络监控系统可以365天24小时监控,但您依旧可以在特定的情况下使用命令行式的网络监控器,某些命令行式的网络监控器

如何在Linux命令行下收听网络电台

如何在Linux命令行下收听网络电台 对于花大量时间在Linux屏幕前的系统管理员和Linux爱好者来说,网络/本地电台上的音乐可以极大提高生产力,你们知道吗?不管你们相信与否,,在工作环境中有适当的声音,如音乐或者闲聊声包围,都可以提高我们的创造力.如果你喜欢在音乐环境中工作,这个教程也许会对你有用.我将会向你展示如何在命令行中收听潘多拉(Pandora)在线电台(LCTT译注:Pandora Internet Radio是一个仅为美国.澳大利亚和新西兰提供自动音乐推荐的系统.详细介绍Pran

怎样在 ubuntu 和 debian 中通过命令行管理 KVM

怎样在 ubuntu 和 debian 中通过命令行管理 KVM 有很多不同的方式去管理运行在 KVM 管理程序上的虚拟机.例如,virt-manager 就是一个流行的基于图形界面的前端虚拟机管理工具.然而,如果你想要在没有图形窗口的服务器环境下使用 KVM ,那么基于图形界面的解决方案显然是行不通的.事实上,你可以单纯使用包装了 kvm 命令行脚本的命令行来管理 KVM 虚拟机.作为替代方案,你可以使用 virsh 这个容易使用的命令行程序来管理客户虚拟机.在 virsh 中,它通过和 li

用Mac和Linux命令行工具使用Windows Azure

除了Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure Web Sites和令人兴奋的新的虚拟机功能的引入,我们最近发布了一系列开放源代码的命令行工具使您可以在任何操作系统上用命令行管理和部署这些新的服务,包括第一次支持苹果 OSX 与 Linux 操作系统. 这篇文章里我将引导您完成安装和基本工具的使用,以及分享如何让你可以了解更多,甚至有利于该工具的信息 (它是开放源码的Node.js 代码,有Apache

给新手的 10 个有用 Linux 命令行技巧

我记得我第一次使用 Linux 的时候,我还习惯于 Windows 的图形界面,我真的很讨厌 Linux 终端.那时候我觉得命令难以记忆,不能正确使用它们.随着时间推移,我意识到了 Linux 终端的优美.灵活和可用性,说实话,我没有一天不使用它.今天,我很高兴和刚开始接触 Linux 的人一起来分享一些有用的技巧和提示,希望能帮助他们更好的向 Linux 过渡,并帮助他们学到一些新的东西(希望如此). 5 个有趣的 Linux 命令行技巧 这篇文章希望向你展示一些不需要很高的技术就可以像一个高

用Linux命令行使用Evernote笔记应用

在Linux命令行中管理你的Evernote记录笔记.要是你从来没有听说过它,Evernote 专门有一个用户友好的在线服务可以在不同的设备间同步笔记.除了提供花哨的基于Web的API,Evernote还发布了在Windows.Mac.Android和iOS上的客户端.然而至今还没有官方的Linux客户端可用.老实说在众多的非官方Linux客户端中,有一个程序一出现就吸引了所有的命令行爱好者,它就是Geeknote. Geeknote 的安装 Geeknote是使用Python开发的.因此,在开