利用脚本管理Digitalocean VPS

工具介绍: 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://4ker.cc/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: https://4ker.cc/do.html
 #  |--------------------------------------------------------------
 #  | Author: 刺猬 <a@4ker.ccc>
 #  | Copyright (c) 2017, https://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 » 转载请注明来源:刺客博客

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

Git提交错误时如何删除Git提交记录

有时候我们可能会遇到git提交错误的情况,比如提交了敏感的信息或者提交了错误的版本,这个时候我们想将提交到代码库的记录删除。

943
来自专栏从流域到海域

在CentOS 7上安装Magento

在这篇教程中,您将学习如何在CentOS 7上安装Magent。Magento Community Edition(CE,即社区版)是一个免费的开源电子商务平台...

2236
来自专栏云计算教程系列

如何在CentOS 7上使用OTRS设置帮助台系统

OTRS是一个开源的票证请求系统。它为用户,客户,IT人员,IT服务和任何外部组织提供单点联系。该程序是用Perl编写的,支持各种数据库(MySQL,Postg...

1303
来自专栏DeveWork

WordPress 添加个性化的博客宠物(妹纸篇)

某日闲逛看到的某个博客上的一个博客宠物,准确来说不是宠物,人家可是萌妹纸啊!看看右侧这个图,就是这个萌妹纸了(后来用谷歌相似图片搜索才发现是死亡笔记的)。让我感...

2095
来自专栏Laoqi's Linux运维专列

svn 基础架构介绍

3185
来自专栏Alice

ios9 http请求失败的问题

最近做项目的时候 将电脑版本升级到10.11.3  xcode'升级到 7.2  但是在模拟器上边进行数据请求的时候告诉我说网路哦有问题 截图如下 ? 通过网络...

2057
来自专栏雪胖纸的玩蛇日常

python3+django2 开发易语言网络验证(下)

1753
来自专栏记事本

腾讯云Centos7 配置bbr,ss,openvpn,firewall

每次拿到主机都要配置一堆这个东西,有时候步骤不对出个玄学问题就很难受,刚好新买了台腾讯香港的服务器,还是记录一下这些东西吧。

3838
来自专栏幸山的专栏

精通yum配置以及问题解决

yum基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁...

6960
来自专栏编程

App与后台通信:从文本协议到二进制协议

本文主要总结了心悦俱乐部 App 的接入层从文本协议到二进制 jce 协议迭代过程中的技术方案。

1.2K10

扫码关注云+社区