Clip是一款适用于海量服务器管理场景的自动化运维工具。可以降低系统误操作的风险,提高工作效率。 Clip将传统的IP管理纬度替换为String管理纬度。管理方式的改变,让海量运维更加方便、可靠、高效。Clip是C/S架构,在服务端保存了IP关系,客户端可以下载SDK,通过SDK遍历服务端的IP和模块关系,将获取到的IP模块关系重新组织排列本地。是剪辑。在此基础上,Clip还提供了远程命令、文件复制、IP组织树遍历、历史命令查看、正反分析、IP-to-String关系导入等功能。为海量服务器运维保驾护航,奠定基础。 以下是自动运维工具下面剪辑的详细介绍。 首先,与String管理方式相比,传统的服务器管理方式具有三个优势: 1)传统的IP管理方式由4组无意义的数字组成,不易记忆。与传统方法相比,String可以通过名称看到并且易于记忆; 2)在管理海量服务时,IP相似往往会导致运行失败,比如模块A(10.131.24.37)和模块B(10.117.24.37),最后两位数字一致,惯性认为两者B模块为A模块,发送配置导致上线故障。通过字符串管理的方式可以很容易的避免这个问题; 3)String可以解析1个IP或者一组IP,String的对应关系也可以根据IP进行反转,方便我们管理一组服务。 我们再来看看String的构成。字符串由4个段组成(idc-product-modules-group)。了解cmdb的同学会发现它和cmdb的结构非常相似。Level4模块定位一个服务,但是随着业务的发展,笔者认为Level4服务不再可用。定位一个服务,比如在一台服务器上部署不同的业务模块,这里level4只能定位服务的IP级别,不能准确定位真正的服务,所以Clip在这个基础上增加了一个level(idc-product-modules-group-port),port端口,通过5段来定位一个服务,这也是Clip的优势所在,可以灵活变换定位一组服务,满足业务需求。让我们再举一个实际的例子。在上海机房,模块A使用80端口提供服务。目前,有100多台机器。模块B使用8080端口提供服务。目前有100多台机器。两个模块的200个机器资源合并了,但是功能没有合并。我们可以用不同的String来表达这两个服务,比如模块A(sh-weixin-friend-a-80)和模块B(sh-weixin-friend-b-8080)。服务分离,部署在同一台服务器上提供服务。 刚才介绍了Clip是C/S架构,String对应的IP关系存储在server服务器中。Client通过Clip的SDK获取IP。它有3个好处: 1)IP和String暗示关系后,可以通过SDK调用所有服务器。 2)SDK在IP解析的基础上提供了其他丰富的功能,如扫描服务器、远程命令、远程复制等。 3)Clip提供了简单明了的API和SDK代码结构和文档。当Clip不能满足我们的需求时,我们可以通过文档方便地扩展Clip来满足我们自己的需求。 接下来我们来看ClipSDK。目前SDK有8个子命令: 每个SDK子命令的作用如下: scan:用于扫描String对应IP的端口存活状态; ◆cstring:用于分析String与IP的关系,以及IP与String的关系; ssh:用于匹配String到IP,远程执行系统命令; scp:用于匹配String到IP,远程Copy文件; ◆树:遍历String下的子节点; ◆history:显示历史执行过的命令; ◆import:导入String关系对应的IP; ◆lt:本地获取IP关系进行管理; ◆帮助:显示Clip当天有多少个子命令。 ***,我们再来看应用案例,对比一下传统方式和剪辑管理方式的区别: 传统方式:在模块A的100台服务器上执行uptime命令。具体操作步骤如下: 1)找到要同步的模块A的ip列表; 2)编写脚本与ip列表中的服务器建立连接; 3)连接服务器时输入账号密码; 4)账号密码认证成功后复制文件; 5)对每个IP重复上述步骤。 剪辑方法: 1)建立模块A的IP列表与字符串的对应关系,例如tj-qzone-qzoneini-access6; 2)clipssh-ppasswordroot@tj-qzone-qzoneini-access6“执行命令”,结构如下。 #p#Clip服务器安装 1)安装Apache\PHP和MySQL #yuminstallhttpdphpmsyqlmysql-server 2)安装ClipWEB界面程序。(注:ClipWEB程序是用Doitphp框架开发的) 2.1)mkdir-p/data/webroot/(创建http虚拟主机发布目录) 2.2)wgethttp://blog.puppeter.com/download/clip/clip_web.tar.gz2.3)tar-xvzfclip_web.tar.gz-C(Apache程序发布目录/data/webroot/) 2.4)配置httpd.conf,添加虚拟主机配置信息。 nameVirtualHost*:80serveradminwds@tencent.com documentRoot/data/webroot/clip_server/ servernameclip.puppeter.com Errorloglogs/clip.puppeter.com-error_log CustomLoglogs/clip.puppeter.com-access_logcommon 2.5)启动httpd。 3)servicemysqldstart启动Mysql 3.1)wgethttp://blog.puppeter.com/download/clip/clip_db.tar.gz下载表结构 3.2)mysql-uroot-p进入mysql,导入表结构 mysql->createdatabasesclip创建clip库 mysql->mysql-uroot-pclip
