几年前在公司开发了一整套运维服务器脚本工具集,命名为 xxx OPS Toolset。

记得当年更迭了N多个版本之后,才最终成型,因为bash的编程能力在结构化组织上还是有限的,所以那时候也是下了功夫的。

现在公司的服务器群全部迁离了阿里云,这套工具集也顺应变化更新了若干次,最主要的变化是现在更通用了,不限于哪个公有云,几乎都能自适应。当然,新的版本乃至旧的版本目前还不能放出来;不过旧版本的截图,昨夜整理时发现,倒是可以post出来,也是对几年前工作的一个小小的回顾吧。

至于说框架结构,实际上我还是整理了两套的,分别是:

  1. bash-frameworkhttps://github.com/hedzr/bash-framework
  2. bash.shhttps://github.com/hedzr/bash.sh

bash-framwork 呢,基本上是 ops toolset 的框架结构,也可以说是一个最小集合的Bash脚本编程框架,主要面向 DevOps 管理任务。 因此,默认的函数集合中包含了像 package-install, is_package_installed, if_ubuntu, if_centos, is_root 这类辅助函数。

不过,由于安装主站的vps不稳定,所以它的分发大约是有问题的,需要的朋友自己去拉源码再自行改造适用了。

至于 bash.sh 就微型得多了。

bash.sh主要是面向单文件开发。bash-framwork主要是面向整套脚本集合的组织、开发,适合组织成系列的大型脚本集合。反过来说 bash.sh 则是一个快速的起点,例如你需要在建设rabbitmq集群方面做一套子命令集合,那就可以直接clone bash.sh的主文件改成 rmq-ctl,然后直接编写bash函数到这个文件中,就可以使用像 rmq-ctl init 3 nodes 这样的命令了。所以像 sdkman 那样的命令套装,用 bash.sh 可以很容易实现。

好了,介绍只这么多。

下面放图:

 

有的图片略有泄露,不过时过境迁,那时候的主机现在找不到了,我们的运维架构也早已改进到了新的结构,权限收紧,不再授权具体服务器而是授权堡垒机,所以那些泄露也过时无效了。

记录于此。