足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

簡單介紹自動化運維工具clip(1)
2016-02-20 19:33:36   來源: 王冬生 運維幫    評論:0 點擊:

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) 安裝ApachePHP和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關系文件名”

\

【編輯推薦】

  1. 27個Linux下軟件包管理工具DNF的命令例子
  2. 快速配置Windows 10隱私選項的3款優秀免費工具
  3. 最棒的60款DevOps開源工具
  4. Github有一款可以教你編程的開源工具
  5. 使用tuptime工具查看Linux服務器系統開機時間的歷史和統計
【責任編輯:火鳳凰 TEL:(010)68476606】

相關熱詞搜索:clip 自動化運維 工具

上一篇:【專題】如何應對運維工作的幾大挑戰?
下一篇:我從【優維計劃】訪談中看到的運維現狀

分享到: 收藏