Clip是一款自动化运维工具,适用于海量服务器的管理场景,可以降低系统误操作风险,提高工作效率等。Clip将传统的IP管理纬度替换为String管理纬度,管理方式的改变使海量运维时更加的便捷、可靠与高效。

Clip是一款自动化运维工具,适用于海量服务器的管理场景,可以降低系统误操作风险,提高工作效率等。

Clip将传统的IP管理纬度替换为String管理纬度,管理方式的改变使海量运维时更加的便捷、可靠与高效。Clip是C/S架构,它将IP关系保存在Server端,Client端可以下载SDK,通过SDK遍历Server端的IP与模块关系等,并在本地对获取的IP模块关系进行重新的组织与编排,这就是Clip。在此基础上Clip还提供了远程命令、文件拷贝、IP组织树遍历、历史命令查看、IP对应String关系正反解析与导入等功能。为海量服务器运维保驾护航,奠定基础。

下面来详细介绍以下clip这款自动换运维工具。

首先,传统服务器管理方式与String管理方式的相比,String管理方式的3点优势:

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对应关系,这让我们管理一组服务更加的方便。

我们再来看一下String的组成。String由(idc-product-modules-group) 4段组成,了解cmdb的同学会发现它与cmdb的结构很像,4级模块定位一个服务,但是随着业务的发展,笔者觉得4级服务已经无法定位到一个服务,譬如,在一台服务器上混合部署不同的业务模块,这里4级只能定位到服务的IP级别,而无法精确定位到真正的服务,所以Clip在此基础上增加了一级(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),通过String就很容易的将两个服务分别开,并部署在相同的服务器上提供服务了。

刚介绍到Clip 为C/S架构 ,String对应的IP关系保存在server服务器中,Client 通过Clip的SDK获取IP ,其优势3点:

1) IP与String建议一次关系后,所有的的服务器上通过SDK都可以调用到。

2)SDK在解析IP的基础上提供了其他丰富的功能,如扫描服务器,远程命令,远程拷贝等。

3)Clip 提供简单清晰的API与SDK代码结构与文档,当Clip不能满足我们需求时,可以通过文档很容易的扩展Clip 满足自己的需求。

接着我们来看Clip SDK,目前SDK共有8个子命令:

各SDK子命令功能如下:

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

◆cstring:用于对String对应IP解析,与IP对应String关系的解析;

◆ssh:用于对String对应IP,远程执行系统命令;

◆scp:用于对String对应IP,远程拷贝文件;

◆tree:遍历String下的子节点;

◆history:显示历史执行过的命令;

◆import:导入IP对应String关系;

◆lt:从本地获取IP关系进行管理;

◆help:显示Clip当天有多少子命令。

最后,我们再来看一下应用案例 ,来比较一下传统方式vs clip管理方式差异:

传统方式:在 A 模块的100台服务器上,执行uptime命令,具体的操作步骤如下:

1) 找到要同步的A模块ip列表;

2) 编写脚本与ip列表中的服务器建立连接;

3) 连接服务器时输入账号密码;

4) 账号密码认证成功后拷贝文件;

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

Clip 方式:

1)建立A模块ip列表与string对应关系,譬如为tj-qzone-qzoneini-access6;

2)clip ssh -p 密码 root@tj-qzone-qzoneini-access6 “执行命令”,以下为结构。

Clip Server安装

1) 安装Apache\PHP和MySQL

# yum install httpd php msyql mysql-server

2) 安装Clip WEB接口程序。(注: Clip WEB程序由Doitphp框架开发)

    2.1) mkdir -p /data/webroot/ (创建http虚拟主机发布目录)

    2.2) wget http://blog.puppeter.com/download/clip/clip_web.tar.gz

2.3) tar -xvzf clip_web.tar.gz -C (Apache程序发布目录/data/webroot/)

    2.4) 配置httpd.conf ,追加虚拟主机配置信息。

       NameVirtualHost *:80

ServerAdmin wds@tencent.com

       DocumentRoot /data/webroot/clip_server/

       ServerName clip.puppeter.com

       ErrorLog logs/clip.puppeter.com-error_log

       CustomLog logs/clip.puppeter.com-access_log common

    2.5) 启动httpd。

3)service mysqld start 启动Mysql

    3.1) wget http://blog.puppeter.com/download/clip/clip_db.tar.gz 下载表结构

    3.2 ) mysql -u root -p 进入mysql,导入表结构

       mysql-> create databases clip 创建clip库

       mysql-> mysql -u root -p clip < clip.sql 导入数据表。

    3.3 ) SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’); 设置mysql密码

    3.4 ) FLUSH PRIVILEGES; 刷新mysql配置

4 ) 设置Clip WEB连接mysql

编辑 /data/webroot/clip_server/application/config/clip.ini.php

Clip SDK安装

Cllip SDK 由Python开发,以下为Clip依赖环境安装过程:

1)下载安装Python (注:目前支持Python 2.6.* 和 2.7.*版本) && expect

# yum install python expect

# python源码安装,推荐2.6.6(下载页面:https://www.python.org/download/releases/2.6.6/)

2)下载Clip SDK

# wget http://blog.puppeter.com/download/clip/clip_latest.tar.gz

3)安装Cllip SDK

# tar -xvzf clip_p1.0.tar.gz -C /usr/local/servcers (注:指定安装目录)

4)设置Clip。 编辑 clip/conf/clip.ini 文件,变更server_ip选项为Clip_webIP

5)导入环境变量

export PATH=$PATH:/usr/local/services/clip/ (安装路径)

或者 echo ‘export PATH=$PATH:/usr/local/services/clip/ ‘ >> /etc/profile && source /etc/profile

6)执行Cllip命令 (见截图)

 

 Clip SDK使用

Clip SDK 功能用于获取Server上的IP关系,并在Client上重新组织编排IP关系。(注:目前clip也支持将IP存放到本地文件中管理)。目前Clip 提供8个子命令,以下Clip子命令的参数解释与演示(更多案例参考:Clip SDK 案例):

clip scan (用于对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 scan 使用演示:

扫描*-puppet-*-* 对应开放的端口

clip cstring(正解与反解String对应IP关系)

◆–query_string(-q)# 解析String对应的IP列表

◆–ip (-i) # 解析IP对应的String

◆–query_string (-q) *-test-*-*,*-docker-*-* # 解析多个String对应IP列表,多String用逗号分隔

◆–limit(-l)# 解析String中指定范围的IP范围

◆–append (-a) #在原有String基础上,追加IP,追加多个(192.168.0.1,192.168.0.2)IP用逗号分隔

◆–remove_ip (-r) # 删除String原有IP列表的IP

◆–join (-j) # 指定输出的格式,支持(“|” “,” “\n”,space) 4种格式输出

◆–log_disable(-o)# 默认日志会上报服务器,并通过history命令查看历史,通过此命令可以关闭日志上报,建议频繁使用clip关闭clip

◆–count (-c) # 统计输出IP个数

◆–dryrun (-d) # 输出调用接口用例

clip cstring演示:

解析*-qq-*-* 对应的IP关系。

解析192.168.0.7 对应的String。

clip ssh (远程命令执行工具)

◆–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

clip ssh演示:

查看string(sh-docker-base_v1-*) 对应机器上负载。

查看string(sh-docker-base_v1-*)的第一台服务器对应负载。

clip scp (远程命令执行工具)

◆–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)# 默认日志会上报服务器,并通过history命令查看历史,通过此命令可以关闭日志上报,建议频繁使用clip关闭clip

clip scp演示:

将ip文件推送到string(sh-docker-base_v1-*)对应机器的/tmp目录上。

tree(String关系遍历工具)

◆–query_string(-p) # 密码

◆–json (-j) # 指定输出的格式

◆–dryrun (-d) # 输出调用接口用例

◆–log_disable(-o)# 默认日志会上报服务器,并通过history命令查看历史,通过此命令可以关闭日志上报,建议频繁使用clip关闭clip

clip tree 演示:

遍历*-*-*-* 下的节点

import(IP关系导入工具)

◆–insert (-i) # 将文件内的clip对应关系导入数据库

◆–bulid (-b) # 创建clip导入数据库,关系模板文件

◆–list_struct (-l) # 显示clip数据库结构

clip import 演示:

clip import -b 创建导入string与关系模板

lt(Local tools 本地获取IP关系管理工具)

◆–password (-p) # 密码

◆–append (-a) # 追加IP,多个IP用逗号分隔

◆–remove (-r) # # 删除原有IP列表的IP

◆–port (-P) # 指定自定义端口(注:默认为22端口)

clip import 演示:

clip lt 根据本地文件IP文件,进行远程ssh command,其中root@“本地IP关系文件名”

本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1732089,如需转载请自行联系原作者

简单介绍自动化运维工具clip相关推荐

  1. 轻量级自动化运维工具ansible之一:初步介绍及简单运用

    一.常见的自动化运维工具: OS Provisioning:PXE, Cobbler OS Config:puppet, saltstack, chef, func Task Exec:fabric, ...

  2. Ansible自动化运维工具介绍

    介绍 Ansible自动化运维工具,是基于Python开发的,可以实现批量系统配置,批量程序部署.批量运行命令等等. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ans ...

  3. 自动化运维工具ansible(安装与模块介绍)

    自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...

  4. 常见的自动化运维工具介绍及特点、安装ansible

    常见的自动化运维工具介绍及特点.安装ansible 一.什么是自动化运维? 简单来说,自动化运维就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人为参与. 将周期性.重复 ...

  5. 自动化运维工具ansible的安装管理以及模块介绍

    自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...

  6. Ansible自动化运维工具介绍与部署

    ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...

  7. 自动化运维工具——ansible安装及模块介绍

    ansbile 前言 一.主流自动化运维工具简介 1.1 Puppet 1.2 Saltstack 1.3 Ansible 二.Ansible 运维工具原理 三.Ansible安装 3.1 下载软件包 ...

  8. 自动化运维工具Ansible

    ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...

  9. 轻量级自动化运维工具Fabric的安装与实践

    一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...

最新文章

  1. redhat搭建NIS服务器
  2. JS报错修改日记(1):Uncaught ReferenceError: showQRcode is not defined
  3. 梯度下降法,牛顿法,高斯-牛顿迭代法,附代码实现
  4. 搜狗词库爬虫(2):基础爬虫框架的运行流程
  5. 页面体验提升小技巧—渐进式图片
  6. Python键鼠自动化函数
  7. 计算机文化课每个人都要学吗,计算机文化基础课程
  8. 若依(RuoYi)如何不登录直接访问?
  9. IE 中开发,兼容与性能测试工具汇总
  10. 【YII】常用代码积累
  11. Css、javascript、dom(一)
  12. 解决办法:undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
  13. GD32F130之DMA
  14. php mb_eregi_replace 只替换一个,mb_eregi_replace多个匹配得到它们
  15. 【VTM10.0】量化之RDOQ技术
  16. Daniel Sabbah:软件工程的转折点
  17. Nginx快速入门(三)正向代理、HTTP服务器与动静分离
  18. 1. Hello World!
  19. 京东首曝无人仓 四款机器人引爆智慧物流黑科技
  20. 百万级深空天体数据库获取

热门文章

  1. 最最基本的Git入门 -- 本地仓库操作
  2. ubuntu 10.04 安装arm交叉编译器
  3. js中event,event.srcElement,event.target在IE和firefox下的兼容性
  4. 创建可重用代码(C++)
  5. Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)
  6. #6164. 「美团 CodeM 初赛 Round A」数列互质-莫队
  7. Hadoop会遇到的45个问题,你确定你了解吗?
  8. 关于HA-MIR镜像双机虚拟IP与周立功CANET-200T采用UDP模式通讯技巧
  9. 关于一次性能调优的反思
  10. 自己开发的Grid组件 针对IOS的