使用Linux命令行管理DigitalOcean VPS水滴
DigitalOcean是雲VPS主機市場中最炙手可熱的新生兒。雖然沒有提供像Amazon之類一樣的綜合服務業務,但DigitalOcean定位於中小型企業和開發者,已經成為基於Linux的最佳雲VPS服務的強有力競爭者,這都得歸功於它們具有競爭力的價格和用戶友好的管理界面。
不管什麼時候,當你需要一個面向網路的伺服器用於你的個人項目,你都可以全速開動一個「水滴」(DigitalOcean中VPS實例的昵稱),也可以在你不需要時殺掉它,沒必要為了讓你的VPS保持運作而燒光了你的錢袋。儘管DigitalOcean基於網路的管理界面已經十分高效,但對於那些命令行界面的死忠派,它還是提供了基於命令行界面的水滴管理工具,它叫tugboat。多虧了這個命令行工具,所有複雜的水滴管理任務都可以簡單地轉變成一個腳本來完成。
在本文中,我打算講述怎樣使用tugboat來從命令行對DigitalOcean水滴進行管理。
在Linux上安裝tugboat
在Debian,Ubuntu或者Linux Mint上安裝tugboat:
$ sudo apt-get install ruby-dev
$ sudo gem install tugboat
在Fedora上安裝tugboat:
$ sudo yum install ruby-devel
$ sudo gem install tugboat
要在CentOS上安裝tugboat,首先安裝或升級到最新的Ruby,因為在CentOS 6.5以及更早的版本上,默認的Ruby不滿足Tugboat所需的最小版本(1.9及更高版本)。安裝Ruby 1.9及更高版本後,請按如下方式安裝tugboat。
$ sudo gem install tugboat
tugboat首次使用配置
在安裝完後,就該進行一次配置,其中包括授權tugboat訪問DigitalOcean帳號。
轉到https://cloud.digitalocean.com/api_access,並創建新的API密鑰,記錄客戶ID和API密鑰。
通過運行以下命令來啟動授權過程:
$ tugboat authorize
在提示你輸入客戶ID和API密鑰時,請輸入。它會詢問幾個其它問題,目前你可以接受默認的回答。我們將會在後面自定義默認設置。
現在,讓我們自定義默認水滴設置,以反映你典型的使用狀況。要做到這一點,首先檢查水滴提供的可用設置項(如,可用的鏡像、區域、大小)。
運行以下命令,它會列出可用的水滴鏡像。選取使用一個默認鏡像,並記錄相關的ID。
$ tugboat images --global
類似,從可用區域中選取一個默認的地理位置:
$ tugboat regions
同時,從可用的RAM大小中選擇一個默認的水滴大小:
$ tugboat sizes
現在,把你的默認選擇放到~/.tugboat中。例如,我在這裡自定義了默認設置:區域在紐約,系統是Ubuntu 14.04,內存512MB。如果你想要通過密鑰驗證啟用SSH,設置「ssh_user」為root,這個我很快會講到。
$ vi ~/.tugboat
authentication:
client_key: XXXXXXXXXXXXXXXXXXX
api_key: XXXXXXXXXXXXXXXXXXXX
ssh:
ssh_user: root
ssh_key_path: /home/dev/.ssh/id_rsa
ssh_port: '22'
defaults:
region: '4'
image: '3240036'
size: '66'
ssh_key: ''
private_networking: 'false'
backups_enabled: 'false'
創建並添加SSH密鑰到DigitalOcean
要訪問水滴實例,一個安全的方式是通過密鑰驗證的SSH連接到該實例。
事實上,你可以通過使用DigitalOcean來註冊SSH公鑰,為你的水滴實現自動啟用密鑰驗證。下面告訴你怎麼做。
首先,生成一個公/私密鑰對(如果你還沒有)。
$ ssh-keygen -t rsa -C "your@emailaddress.com"
假設生成的密鑰對由~/.ssh/id_rsa(私鑰)和~/.ssh/id_rsa.pub(公鑰)構成,去將你的公鑰上傳吧,命令如下:
$ tugboat add-key [name-of-your-key]
你可以任意給你的密鑰命名(如,「my-default-key」)。當出現提示時,輸入公鑰路徑(如,/home/user/.ssh/id_rsa.pub)。在密鑰上傳完成後,運行以下命令來驗證密鑰是否正確添加:
$ tugboat keys
密鑰也應該出現在DigitalOcean的SSH密鑰頁。如果你想要密鑰自動使用到水滴中,添加密鑰ID到~/.tugboat中。
ssh_key: '182710'
Tugboat的基本用法
這裡列出了tugboat命令行的一些基本使用情況。
- 使用默認設置創建新水滴。
$ tugboat create
- 列出所有活動水滴。
$ tugboat droplets
- 顯示水滴的信息。
$ tugboat info
- 關閉水滴,並移除鏡像。
$ tugboat destroy
- 關閉水滴,但保持鏡像
$ tugboat halt
- 為水滴創建快照,水滴必須先關閉。
$ tugboat snapshot
- 調整水滴大小(增加或減少RAM大小),水滴必須先關閉。
$ tugboat resize -s
如果你想要了解特定命令的更多選項,運行:
$ tugboat help <command>
排障
- 當我運行tugboat命令時,它出現以下錯誤。
/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,請參考此教程
- 當我試著用gem來安裝Tugboat時,出現了下面的錯誤。
/usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json/pure (LoadError)
安裝以下gem來修復該問題。
$ sudo gem install json_pure
via: http://xmodulo.com/2014/07/manage-digitalocean-vps-droplets-command-line-linux.html
原文作者:Dan Nanni
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive