高效自動化運維工具 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天后,才能轉載本文。尊重知識,請必須全文轉載,幷包括本行。

相關文章
相關標籤/搜索