利用脚本管理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 条评论
登录 后参与评论

相关文章

来自专栏社区的朋友们

让木马 DNS 数据传输成为历史:看我怎么让 xshell 病毒失效

笔者提出基于全 web 代理的 dns 恶意传输屏蔽方案,通过禁止终端做 dns 解析,仅允许代理做dns,完全屏蔽 pc 的恶意 dns 传输的同时,保障终端...

3040
来自专栏北京马哥教育

跟大神一起十五分钟制作一个属于自己得Linux操作系统!

一、前言 Linux操作系统至1991年10月5日诞生以来,就其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在L...

3683
来自专栏编程

推荐两个bash环境下的Git插件

情景 在使用Git时,常遇到这样的情况: 使用子命令时必须完全输入,并不能像shell那样有命令补全的功能; Git鼓励大量使用分支,当在分支之间切换时,常常需...

2439
来自专栏GA小站

Launch上的Extensions(插件)

Extensions在英文上的意思就是扩展,但实际这个中文意思并不能很好的代表这个功能,我觉得用“插件”这个词会比较合适,后面我所有的介绍都会用插件来表示Ext...

924
来自专栏macOS 开发学习

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(二)

1.1 选中ViewController.m文件,添加鼠标左键点击事件监听,实现代码如下图:

723
来自专栏吴柯的运维笔记

Linux系统下搭建LNMP环境

“每个理性的IT人士都置顶了吴柯的运维笔记” LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计...

3906
来自专栏北京马哥教育

Linux 下各文件夹的结构说明及用途介绍

/home:用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示。

880
来自专栏程序员宝库

Linux 下各文件夹的结构说明及用途介绍

linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊文件。 /etc:系统管理和配置文件。 /etc/rc.d:启动的配...

43312
来自专栏枕边书

一键部署进化史

前言 ---- 之前的文章说过 由 PHP 转到 Java 之后,非常不适应的一点就是代码部署过程耗时长,调试不便,虽然可以使用 debug,但有时候还是需要修...

3718
来自专栏Java后端技术

解决【无法启动此程序,因为计算机中丢失MSVCP71.dll。尝试重新安装该程序以解决此问题】问题

  今日电脑偶然出现:【无法启动此程序,因为计算机中丢失MSVCP71.dll。尝试重新安装该程序以解决此问题。】的不断地弹窗报错。

832

扫码关注云+社区