高效自动化运维工具 Clip | 实战篇

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

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

编辑

  • 徐凯强@和信(整理)mysql

做者介绍

王冬生

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

导读

在上一篇的介绍篇中,咱们对 Clip 进行了总体的介绍,本篇将着重介绍 Clip 的安装过程及 Clip 的 SDK 使用方法。sql

Clip Server安装

  1. 安装Apache\PHP和MySQLdocker

    yum install httpd  php msyql mysql-server

    f9a89361b16b80e65ebfaf6c5ba42dfa.jpeg

  2. 安装Clip Web接口程序。(注:Clip WEB程序由Doitphp框架开发)
    1) 建立http虚拟主机发布目录:数据库

    mkdir -p /data/webroot/

    2) 下载安装包:json

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

    3) 解压缩安装包:php框架

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

    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

    5) 启动httpd:

    service httpd start
  3. 初始化 Clip Web 的 Mysql 数据库
    1) 启动Mysql:

    service mysqld start

    2) 下载表结构:

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

    3) 导入表结构:

    进入mysql:mysql -u root -p
    建立clip库:mysql> create database clip;exit;
    导入数据表:mysql -u root -p clip < clip.sql;
    设置密码:mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’); 
    刷新mysql配置:mysql> FLUSH PRIVILEGES;
  4. 设置Clip Web链接Mysql,编辑该文件:

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

Clip SDK安装

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

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

    yum install python expect

    27d21f0018f64d62bfe4b64b146540ab.jpeg

    PS: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,以下图:

    b2de09b65a73960315d6819fa776e12d.jpeg

  5. 导入环境变量

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

    或者

    echo ‘export PATH=$PATH:/usr/local/services/clip/ ‘ >> /etc/profile && source /etc/profile
  6. 执行Cllip命令 (见截图)
    f49c238dc8206ee92e55f13233f97e28.jpeg

Clip SDK使用

Clip SDK 用于获取 Server 上的IP关系,并在 Client 上从新组织编排 IP 关系。(注:目前 clip 也支持将 IP 存放到本地文件中进行管理)。

目前 Clip 提供8个子命令,如下为 Clip 子命令的参数解释与演示(更多案例参考Clip SDK 案例):

  1. 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
  • 使用演示:

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

    da809441adebad18028e7f34c7fbe9bf.jpeg

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)  #指定输出的格式,支持(“&#124;” “,” “\n”,space) 4种格式输出
    –log_disable(-o) #默认日志会上报服务器,并经过history命令查看历史,经过此命令能够关闭日志上报,建议频繁使用clip关闭clip
    –count (-c)  #统计输出IP个数
    –dryrun (-d)  #输出调用接口用例
  • 使用演示:

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

    4b14325320a98dfed1f4db370c02b363.jpeg

    解析192.168.0.7 对应的String。

    68a0c3f4597bc6e1d6e69b85938e50a4.jpeg

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
  • 使用演示:

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

    ca7df3f9e168a09b2b6df319f14734d5.jpeg

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

    e300fbdd20babda82c65cb0d61481e17.jpeg

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
  • 使用演示:

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

    05e41ea46617add23c41c8792a6ab87f.jpeg

tree

String关系遍历工具

  • 参数格式

    –query_string(-p)  #密码
    –json (-j)  #指定输出的格式
    –dryrun (-d)  #输出调用接口用例
    –log_disable(-o) #默认日志会上报服务器,并经过history命令查看历史,经过此命令能够关闭日志上报,建议频繁使用clip关闭clip
  • 使用演示:

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

    5be77c2b09ffdf765caeed46dbd3b097.jpeg

import

IP关系导入工具

  • 使用演示:

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

    c09b1250a42d5c301072a7c5663ce0b9.jpeg

  • 参数格式

    –insert (-i)  #将文件内的clip对应关系导入数据库
    –bulid (-b)  #建立clip导入数据库,关系模板文件
    –list_struct (-l)  #显示clip数据库结构

lt

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

  • 使用演示:

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

    2b1b75839db10171f2991451fa7b7540.jpeg

  • 参数格式

    –password (-p)  #密码
    –append (-a)  #追加IP,多个IP用逗号分隔
    –remove (-r)  #删除原有IP列表的IP
    –port (-P)  #指定自定义端口(注:默认为22端口)

好消息来啦

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

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

如何一块儿愉快地发展

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

2e2404cb4960108fd95e617dda07db8d.jpeg

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

8224fff77185d99cc10cadadf129359a.jpeg

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

相关文章
相关标签/搜索