利用脚本管理Digitalocean VPS

2017-11-13 分类:教程 作者:刺猬

工具介绍:
DigitalOcean是基于网络的管理界面的VPS服务商,但对于那些命令行界面的死忠派,它还是提供了基于命令行界面的水滴管理工具,它叫tugboat。多亏了这个命令行工具,所有复杂的水滴管理任务都可以简单地转变成一个脚本来完成。
工具安装:
说一下我要把管理脚本和安装脚本分离出来的原因:
由于tugboat安装过于杂乱,加上CentOS系统的默认ruby版本为2.00,但是Debian&Ubuntu版本基本为2.1,tugboat需要版本为2.1以上,所以CentOS需要升级升级ruby的版本。而Debian&Ubuntu大部分版本直接安装即可。所以就无法集成在一个脚本,而管理脚本是两个版本系统通用,所以分离出来,安装好环境,直接使用管理脚本,是暂时最好的解决方法。
CentOS系统:
先使用ruby -v命令查看当前ruby版本,如果版本>2.0,下面的安装ruby操作可跳过,否则请一步步按照教程操作。

yum remove ruby ruby-devel -y
yum groupinstall "Development Tools" -y
yum install openssl-devel -y
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz
tar xvfvz ruby-2.1.2.tar.gz
cd ruby-2.1.2
./configure
make
sudo make install
gem update --system

其中如果

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz

如果遇到下载缓慢,换成coding的文件

wget https://coding.net/u/cvc/p/ruby-digitaloceam/git/raw/master/ruby-2.1.2.tar.gz

即可。
此问题我在国内服务器上遇到多次,国外服务器使用正常。到此,ruby安装完成,使用ruby -v查看版本。
如果>2.0请继续执行:

gem install tugboat

到此,tugboat安装完成。你可以获取管理脚本来管理VPS了。


Debian&Ubuntu系统:
先说一下,个人觉得Debian比Ubuntu管理方便,不是说比Ubuntu好,而是使用起来顺手,和个人原因有关,所以以后我的一些小工具都尽量在CentOS&Debian中开发,不保证Ubuntu没问题(虽然大多也没问题),所以,选择一个系统来使用,也是够难选择的......
先使用ruby -v命令查看当前ruby版本,如果版本>2.0,下面的安装ruby操作可跳过,否则请一步步按照教程操作。

apt-get install ruby-dev -y

Debian安装是不是很方便?所以强烈建议你把系统重装为Debian8 X64,ruby环境为2.1,很多CentOS需要一堆脚本安装的东西,Debian几句话就完成了。到此,ruby安装完成,使用ruby -v查看版本。如果>2.0请继续执行:

gem install tugboat

到此,tugboat安装完成。你可以获取管理脚本来管理VPS了。

脚本获取:
只要安装好环境,脚本使用自然不是问题啦:

wget https://coding.net/u/cvc/p/ruby-digitaloceam/git/raw/master/do.sh;bash do.sh
备用:
wget 4ker.cc/ss/do.sh;bash do.sh

按照提示操作即可。
有几个问题得提一下,以免出现问题。
1.我脚本里面采用的是文件替换方式来替换API的key值,所以如果你想自己安装,执行:
tugboat authorize
即可按照提示来配置自己的默认文件,默认文件地址:
/root/.tugboat
有问题,有需求自己修改即可。
2.整个脚本也就是用命令行控制vps,写脚本纯属为自己开机器方便,所以很多东西都按照我的思路写,有需要自己修改脚本即可。
3.tugboat支持快速登陆新建的服务器,但是需要为服务器指定公钥,也就是自定义新建镜像之后,使用:
tugboat ssh <镜像名字>
然后登陆即可,注意最重要的问题:私钥需要上传到当前服务器/root目录,因为需要登陆验证。
整篇文章本来用幕布写的非常清晰,但是导出到Wp就一堆问题,所以我提供高质量的图片格式给大家观看。

https://d.3s.work/wp-content/uploads/2017/11/do.png

(点击即可查看图片文章。看完图片,来文章取代码为最好的解决方法。)

附上do.sh脚本源代码:

#!/bin/bash
#  .-------------------------------------------------------------
#  | Bash Name: Digitalocean VPS管理脚本
#  | Version: 1.0
#  | This Is a Shell Script ,Easy To Use
#  | Web Site: http://4ker.cc/do.html
#  |--------------------------------------------------------------
#  | Author: 刺猬 <a@4ker.ccc>
#  | Copyright (c) 2017, http://4ker.cc All Rights Reserved.
#  .--------------------------------------------------------------
echo '----------------------------------------------------------------------------------'
echo "请输入菜单选项:"
echo '-------------------------'
echo -e "
   1.配置tugboat到服务器(第一步,务必配置)
   2.查看digitalocean已开通服务器列表
   3.查看digitalocean密钥列表(使用密钥创建请记住id备用)
   4.查看digitalocean可创建服务器地区列表
   5.查看digitalocean可创建镜像列表
   6.查看digitalocean可创建内存列表
   7.创建服务器(内有使用详情)
   8.自定义创建服务器
   9.删除已经创建的服务器
   10.查看某一个服务器详细信息
   使用Ctrl+z即可退出系统
其他信息请参考:https://github.com/petems/tugboat"

echo '-------------------------'
echo '----------------------------------------------------------------------------------'
echo -n "输入选项: "
read mode

case "$mode" in
"1")
echo "配置tugboat到服务器"
sleep 1
echo -e "
---
authentication:
  access_token: null
ssh:
  ssh_user: root
  ssh_key_path: "
~/.ssh/id_rsa"
  ssh_port: '22'
defaults:
  region: sgp1
  image: ubuntu-14-04-x64
  size: 512mb
  ssh_key: ''
  private_networking: 'false'
  backups_enabled: 'false'
  ip6: 'false'
"
>.tugboat
echo "请输入digitalocean的key:(开通地址https://cloud.digitalocean.com/settings/api/tokens)"
read key
sed -i "s/access_token: null/access_token: ${key}/g" .tugboat
alias do=tugboat >>.bashrc
. .bashrc
cp $0 /bin/doc
chmod +x /bin/doc
echo "tugboat安装完成!  可使用快捷菜单doc来快速开启此脚本"
sleep 2
sleep 3;bash $0
;;
"2")
echo "查看digitalocean已开通服务器列表"
tugboat droplets
sleep 3;bash $0
;;
"3")
echo "查看digitalocean密钥列表"
tugboat key
sleep 3;bash $0
;;
"4")
echo '查看digitalocean服务器地区列表'
tugboat regions
sleep 3;bash $0
;;
"5")
echo '查看digitalocean镜像列表'
tugboat images
sleep 3;bash $0
;;
"6")
echo '查看digitalocean可创建内存列表'
tugboat regions
sleep 3;bash $0
;;
"7")
echo '创建服务器'
echo -e '
默认配置:
内存:512MB
地区:新加坡
镜像:Ubuntu 14.04
无密钥登陆,请到邮箱收取root密码。'

echo "请输入需要创建的镜像名字,仅作为区分,可随意:"
read imagename
tugboat create $imagename
echo "创建成功,请输入2.查看digitalocean已开通服务器列表来查看服务器信息"
sleep 3;bash $0
;;
"8")
echo '自定义创建服务器'
sleep 1
echo -e '
请选择需要创建的镜像名字:
列出几个常用名字:centos-6-5-x64,fedora-24-x64,ubuntu-14-04-x64-do,ubuntu-16-10-x64,debian-8-x64,debian-7-x64
回车默认debian-8-x64'

read numm
if [[ $numm == "" ]]
    then
numm=debian-8-x64
fi
echo '请输入创建的地区:常用:sgp1(新加坡)sfo1(旧金山1)sfo2(旧金山2)nyc1(纽约1)
回车默认sgp1'

read land
if [[ $land == "" ]]
    then
land=sgp1
fi
echo "请输入镜像大小:常用:512mb,1gb,2gb
回车默认512mb"

read size
if [[ $size == "" ]]
    then
size=512mb
fi
echo "请输入密钥key,下面将显示您所有的key信息,只需要输入id信息即可"
tugboat key
read key
echo "请输入镜像名字:"
read pname
tugboat create $pname -s $size -i $numm -r $land -k $key
echo "创建完成!"
sleep 3;bash $0
;;
"9")
echo '9.删除已经创建的服务器'
echo "请输入创建的服务器名字:支持模糊查询(需要输入y确认)"
read dname
tugboat destroy $dname
sleep 3;bash $0
;;
"10")
   echo '10.查看某一个服务器详细信息'
   echo "请输入创建的服务器名字:支持模糊查询(需要输入y确认)"
   read cname
   tugboat info $cname
   sleep 3;bash $0
;;
esac
echo

写作初衷是因为我这每次登陆DigitallOcean都需要邮件验证,所以就找到了这个工具。写工具用了点时间,不过写出来大大的方便了自己
文章参考:
http://ask.xmodulo.com/upgrade-ruby-centos.html
http://www.linuxidc.com/Linux/2014-09/106124.htm
https://github.com/petems/tugboat

» 本文链接:利用脚本管理Digitalocean VPS
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。
继续阅读