当前位置: 首页 > 科技观察

自动化运维工具简介

时间:2023-03-21 10:28:30 科技观察

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>/etc/profile&&source/etc/profile  6)执行Cllip命令(见截图) #p# ClipSDK利用  ClipSDK的功能获取Server端的IP关系,并在Client端重新整理整理IP关系。(注:目前clip还支持将IP存放在本地文件中进行管理)。目前,Clip提供了8个子命令。以下Clip子命令的参数解释和演示(更多案例请参考ClipSDK案例):  clipscan(用于扫描String对应IP的端口存活状态)  ◆–query_string(-q)#根据String扫描IP端口  –ip(-i)#扫描指定IP端口  ◆–query_string(-q)*-test-*-*,*-docker-*-*#多String扫描用逗号隔开  –append(-a)#在原来String的基础上,添加IP,添加多个(192.168.0.1,192.168.0.2)IP用逗号隔开  ◆–remove_ip(-r)#删除String的原始IP列表的IP  ◆–limit(-l)#扫描String中指定范围的IP  –port(-P)#指定自定义扫描端口(注:默认为80端口)  ◆–log_disable(-o)#默认会向服务器上报日志,通过history命令可以查看历史记录。此命令可用于禁用日志报告。建议经常使用clip禁用clip  clip扫描演示:  扫描*-puppet-*-*对应开放端口  clipcstring(正解和负解String对应IP关系)  ◆–query_string(-q)#解析IP列表  ◆–ip(-i)#解析String对应的IP  ◆–query_string(-q)*-test-*-*,*-docker-*-*#解析IP列表对应的多个String,多个String用逗号分隔  –limit(-l)#解析指定范围inStringIPrange  ◆–append(-a)#在原来String的基础上,添加IP,添加多个(192.168.0.1,192.168.0.2)个IP,用逗号隔开  ◆–remove_ip(-r)#删除String原IP列表的IP  --join(-j)#指定输出格式,支持("|"",""\n",空格)4种格式输出  ◆–log_disable(-o)#默认会向服务器上报日志,可以通过history命令查看历史记录。此命令可用于关闭日志报告。建议经常使用clip关闭clip  ◆–count(-c)#统计输出IP号  ◆–dryrun(-d)#输出调用接口用例  clipcstring演示:  解析*-qq-*-*对应的IP关系。  解析192.168.0.7对应的String。  clipssh(远程命令执行工具)  ◆–password(-p)#密码  ◆–append(-a)#在原有String的基础上,添加IP,添加多个(192.168.0.1,192.168.0.2)IP以逗号分隔  –remove_ip(-r)#从String的原始IP列表中删除IP  –limit(-l)#解析String中指定范围的IP范围  ◆–port(-P)#指定自定义端口(注:默认为22个端口)  ––dryrun(-d)#输出调用接口用例  ◆--log_disable(-o)#默认会向服务器上报日志,可以通过history命令查看历史记录。此命令可用于禁用日志报告。建议经常使用clip禁用clip  clipsshdemo:  Viewstring(sh-docker-base_v1-*)对应机器负载。  查看string(sh-docker-base_v1-*)的第一个server对应的负载。  clipscp(远程命令执行工具)  ◆–password(-p)#密码  ◆–append(-a)#在原有String的基础上,添加IP,添加多个(192.168.0.1,192.168.0.2)IP用逗号分隔  –remove_ip(-r)#删除cstring原IP列表中的IP  –limit(-l)#分析String中指定范围的IP范围  ◆–port(-P)#指定自定义端口(注意:默认为22个端口)  –dryrun(-d)#输出调用接口用例  –log_disable(-o)#默认日志会上报Server,通过history命令查看历史。此命令可用于关闭日志报告。建议经常使用clip关闭clip  clip。在/tmp目录中。  tree(字符串关系遍历工具)  ◆–query_string(-p)#密码  ◆–json(-j)#指定输出格式  ◆–dryrun(-d)#输出调用接口用例  ◆–log_disable(-o)#默认会向服务器上报日志,通过history命令可以查看历史记录。此命令可用于禁用日志报告。建议经常使用clip,禁用clip  clip树演示:  遍历*-*-*-*下的节点  import(IP关系导入工具)  ◆–insert(-i)#将文件中的剪辑对应导入数据库  ◆–bulid(-b)#创建片段导入数据库,关系模板文件  –list_struct(-l)#显示片段数据库结构  clipimportdemo:  clipimport-bcreateimportstringandrelationshipTemplate  lt(Localtools本地获取IP关系管理工具)  ◆--password(-p)#密码  ◆--append(-a)#追加IP,多个IP用逗号隔开  ◆–remove(-r)##从原始IP列表中删除IP  ◆–port(-P)#指定自定义端口(注意:默认为22个端口)  clipimportDemo:  cliplt根据本地文件IP文件执行远程ssh命令,其中root@"本地IP关系文件名"