高效自动化运维工具 Clip | 介绍篇

本文根据高效运维系列微信群的群友文章整理并发布。“高效运维”公众号做为本系列群的官方惟一公众号,原创并独家首发。服务器

欢迎关注“高效运维”公众号,以避免费参加「运维讲坛」每个月一次的线下交流活动;并抢先赏阅干货满满的各类原创文章(详见文末)。微信

编辑

  • 徐凯强@和信(整理)架构

做者介绍

王冬生

腾讯高级工程师,《Puppet权威指南》做者并发

引子

IP数字不容易记忆,因此聪明的人类发明了DNS。DNS把不容易记忆的数字,改成容易记忆的一串有规则的域名,域名又能够解析相应的IP,基于此思路,咱们开发了近似 DNS 工具的名字服务系统。
在公司内部但愿经过名字服务系统在 CMDB 基础之上把不一样的业务(cpu、内存、磁盘和网卡)“夹在一块儿”,对于上层能够实现资源互补,对于下层能够方便核算业务成本,因此这就是CLIP(夹子)的由来了。app

Clip 简介

Clip是一款自动化运维工具,适用于海量服务器的管理场景,能够下降系统误操做风险,提升工做效率。运维

其将传统的 IP 管理纬度替换为String管理纬度的管理方式,使海量运维变得更加便捷、可靠与高效。ssh

Clip是 C/S 架构,它将IP关系保存在 Server 端,Client 端能够下载 SDK,经过 SDK 遍历 Server 端的 IP 与模块关系等,并在本地对获取的 IP 模块关系进行从新的组织与编排,这就是Clip。ide

Clip还提供了远程命令、文件拷贝、IP组织树遍历、历史命令查看、IP对应String关系正反解析与导入等功能。为海量服务器运维保驾护航,奠基基础。工具

下面来详细介绍下Clip这款自动化运维工具,首先从基于String管理的 String 组成提及。spa

String 的组成方式

String由(idc-product-modules-group) 4段组成,了解 CMDB 的同窗会发现它与 CMDB 的结构很像,4级模块定位一个服务。

可是随着业务的发展,笔者以为4级服务已经没法定位到一个服务,譬如:在一台服务器上混合部署不一样的业务模块,这里4级只能定位到服务的IP级别,而没法精肯定位到真正的服务。

因此Clip在此基础上增长了一级 — Port (端口号),改完的String格式变成了这样:(idc-product-modules-group-port),经过5段定位一个服务。这也是Clip优点,灵活变换来定位一组服务,知足业务需求。

举一个实际的例子:

上海机房,A 模块使用80端口提供服务,目前有100多个机器,B模块使用8080端口提供服务,目前也有100多个机器,因为业务流量降低,为了节约资源目前想将两个模块200台机器资源合并,但功能不合并。

咱们可将两个服务表示到不一样的String中,如:

A模块(sh-weixin-friend-a-80)
B模块(sh-weixin-friend-b-8080)

经过String就很容易的将两个服务分别开,并部署在相同的服务器上提供服务了。

管理方式对比

相较于传统服务器管理方式,String管理方式有如下优点:

  1. 传统为IP管理方式,IP由4组无心义的数字组成,比较难记忆。与传统方式相比String能够见名识意,方便记忆。

  2. 管理海量服务时,IP类似常常会致使运营故障,譬如A模块(10.131.24.37)和B模块(10.117.24.37),后两位数字一致,惯性的认为两个B模块就是A模块,发送配置致使线上故障。经过String管理方式能够很方便的规避此问题。

  3. String 能够解析1个IP,也能够解析一组IP,根据IP也能够反解析String对应关系,这让咱们管理一组服务更加的方便。

Clip 的C/S 的架构

刚介绍到 Clip 为 C/S 架构,String 对应的 IP 关系保存在 Server 服务器中,Client 经过 Clip 的 SDK 获取IP。

其优点有3点:

  1. IP与String创建一次关系后,因为关系保存在 Server 端,所以全部的服务器上经过SDK均可以调用到。

  2. SDK 能够提供更加丰富的功能,如扫描服务器,远程命令,远程拷贝等。

  3. 能够方便的进行定制开发,Clip 提供简单清晰的API与SDK代码结构与文档,当Clip不能知足咱们需求时,能够经过文档很容易的扩展Clip 知足本身的需求。

Clip SDK

目前 SDK 共有8个子命令,以下所示:

f4fc83c23fe7398376d5e9a938fc37b9.jpeg

  • scan: 用于对String对应的IP进行端口存活状态扫描。

  • cstring: 用于解析String和IP的对应关系。

  • ssh: 用于对String对应的IP,远程执行系统命令。

  • scp: 用于对String对应的IP,远程拷贝文件。

  • tree: 遍历String下的子节点。

  • history: 显示历史执行过的命令。

  • import: 导入IP对应String关系。

  • lt: 从本地获取IP关系进行管理。

  • help: 显示Clip当前有多少子命令。

Clip 案例

最后咱们再来看一下应用案例 ,来比较一下传统方式和Clip管理方式差别:

传统方式:

在 A 模块的100台服务器上,执行uptime命令,具体的操做步骤以下:

  1. 找到要同步的A模块 IP 列表。

  2. 编写脚本与 IP 列表中的服务器创建链接。

  3. 链接服务器时输入帐号密码。

  4. 帐号密码认证成功后拷贝文件。

  5. 在每一个 IP 重复以上步骤。

Clip 方式:

在 A 模块的100台服务器上,执行uptime命令,具体的操做步骤以下:

  1. 创建A模块ip列表与String的对应关系,譬如为tj-qzone-qzoneini-access6。

  2. clip ssh -p 密码 root@tj-qzone-qzoneini-access6

执行上述命令后,如下为执行结果。

ce0fa11336021cd8770a80516fc88211.jpeg

能够看出相较于传统的管理方式,采用Clip 的方式进行管理,大大简化了工做量。

后记

关于 Clip 的安装及详细的操做使用说明将会在后面的文章中说明,请你们持续关注此公众号的最新文章。

好消息来啦

全球运维大会·上海站,将于10月31日举行,届时三大运维体系(精益运维、高效运维和白盒运维),将首度同台汇演。本次会议免费,如需报名或了解详情,请猛戳以下连接。

约不?三大运维体系首度同台汇演 | 全球运维大会·上海站

如何一块儿愉快地发展

“高效运维”公众号(以下二维码)值得您的关注,做为高效运维系列微信群的惟一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛线上精彩分享及群友原创。“高效运维”也是互联网专栏《高效运维最佳实践》及运维2.0官方公众号。

8224fff77185d99cc10cadadf129359a.jpeg

提示:目前高效运维新群已经创建,欢迎加入。您可添加萧田国我的微信号xiaotianguo8 为好友(或扫描以下二维码),进行申请,请备注“申请入群”。

c09b1250a42d5c301072a7c5663ce0b9.jpeg

重要提示:除非事先得到受权,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行。