您好,登錄后才能下訂單哦!
這篇文章主要介紹自動化運維工具clip有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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關系文件名”
以上是“自動化運維工具clip有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。