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 功能用于获取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关系文件名”
实操指南:如何监控聊天中的敏感信息?这款秘籍软件,轻松掌握微信聊天动态
电影《摩登时代》里,流水线工人就连在吃饭时都要用“自动喂食机”提高效率,这样才能挤出更多时间投入工作。虽然现在打工人不至于此,但有些老板仍然放心不下……像企业聊天记录往往蕴含着大量的敏感信息。为了确保信息安全,监控聊天中的敏感信息成为了一项必要且重要的工作。以下是一款秘籍软件,帮助你轻松掌握微信聊天动态,确保信息安全。...
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过员工上班在干什么?摸鱼?打游戏?老板该怎么管理?如何才能监视怎么监控员工上班情况?监控员工上班情况可以通过多种方式实现,但重要的是要确保这些措施既合法又合规,同时尊重员工的隐私权。以下是一些建议的方法:一、制定明确的行为规范与奖惩制度1、制定行为规范: 企...
怎么监控员工上班情况?快速监控员工状态
怎么监控员工上班情况?快速监控员工状态在企业管理中,如何有效监控员工上班情况,确保工作效率与团队协作,是每位老板都需面对的课题。本文为您揭秘五招快速监控员工状态的实用技巧,不仅能帮助您实时掌握员工动态,还能提升整体管理效率。作为老板,掌握这些技巧,将让您在企业管理中游刃有余,轻松应对各种挑战。一、使用安企神软件实时监控...
安企神桌管软件:提升企业管理效率的全能助力
安企神桌管软件:提升企业管理效率的全能助力在当今竞争激烈的商业环境中,企业必须不断优化管理和运营流程,以提高效率和盈利能力。安企神桌管软件正是这样一款面向中小企业的管理工具,能够帮助企业在多方面提升综合管理水平。本文将详细探讨安企神桌管软件给企业带来的多重价值。一、全方位的管理功能安企神桌管软件是一款集成了多种管理功能...
安企神:揭开终端安全管理软件的神秘面纱
安企神:揭开终端安全管理软件的神秘面纱在数字化日益普及的今天,企业的网络安全问题愈发显得重要。数据泄露、网络攻击等事件层出不穷,如何保障企业内部信息的安全性成为众多企业关心的焦点。安企神终端安全管理软件应运而生,作为一款专业的安全管理工具,它的功能与优势备受关注。本文将全面揭秘安企神软件的核心功能、应用场景及其在终端安...