簡單介紹自動化運維工具clip

2021-01-11 51cto

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關係文件名」

【編輯推薦】

【責任編輯:

火鳳凰

TEL:(010)68476606】

相關焦點

  • 運維工程師的未來——Python
    你招來的運維需要多長的時間來適應你各種軟體?這都是網際網路公司要進行考慮的問題。現在又出現一個最火的自動化運維語言的Python,那麼究竟自動化運維和自動化運維語言Python給我們帶來了什麼呢?  針對自動化運維和Python,我們在CU論壇展開了討論,詳情可以查閱(http://bbs.chinaunix.net/forum.php?
  • IT運維市場在2020年前景分析
    1、IT基礎設施運維自動化由於企業要求IT基礎設施能夠做到高可靠、低延時、大容量、零故障等,那就需要IT運維人員對底層硬體設備進行用心維護,硬體不出故障才能保證上層業務系統的穩定、高效地運行。5、在線業務系統發布自動化使用業界先進工具實現在線業務系統代碼發布自動化,打破傳統IT運維 "領域隔離",實現真正的一鍵式發布業務系統,加快系統部署速度,實現用戶無感知升級或回滾操作等。
  • 簡單運維的OTN網絡詳解
    OTN大量進入城域網絡後,原SDH運維人員面臨OTN網絡運維的挑戰。一方面是OTN網絡運維的工作量相對於SDH網絡有所增加。另一方面,OTN網絡的複雜度遠高於SDH網絡,從設備管理、業務發放、告警排障和資源管理各個方面都與SDH網絡有很大差異。運維人員以傳統的SDH運維經驗,難以支撐OTN網絡運維。OTN網絡運維複雜在哪裡?
  • CSS3的background-clip和background-origin屬性簡介
    CSS3的background-clip和background-origin屬性簡介 background-clip 和 background-origin 是 CSS3 中新加的 background
  • 惠普BSA 9.0 讓你的雲更加自動化
    惠普公司企業業務集團軟體及解決方案事業部總經理謝少毅表示,惠普通過收購資料庫和應用自動化公司Stratavia,在既有的自動化解決方案基礎上增強了對資料庫、中間件和應用程式的部署、配置和管理。至此,在此基礎上全新的BSA 9.0可以對從基礎設施到對資料庫中間件,再到對應用軟體進行全面的自動化監控管理。據了解,惠普下一步動作將通過收購安全公司加強惠普軟體在雲安全方面與合規性檢測的能力。
  • ClipConverter.cc:免費的在線媒體下載轉換器
    圖為ClipConverter.cc相關圖片(圖片來源:Techweb.com.cn)【TechWeb報導】10月27日消息,新酷網站:免費的在線媒體下載轉換器ClipConverter.ccClipConverter.cc 是一個完全免費的在線媒體轉換工具
  • 雲原生背景下的運維價值思考與實踐
    接下來介紹我們運維體系是如何進行轉型升級的,首先我們的轉型理論基礎來源於DevOps框架,從中抽取出符合現階段服務場景要求的模型,從文化與技術兩大方向反覆去實踐與論證,也獲取了非常好的效果。
  • 重新定義軟體開發模式,飛算以「自動化」逐個擊破行業痛點
    作為新一代的開發平臺和研發管理平臺,飛算全自動軟體工程平臺實現了「你輸入流程圖,我實現自動開發,自動測試,自動運維」,助力企業實現「降低項目成本、提升開發效率、保證代碼質量、簡化團隊管理」,讓軟體工程行業的作業方式從「人治」變成「法治」。陳定瑋將軟體開發比作蓋房子,代碼就是其中的一塊塊磚。
  • 運維人員就像在37°高溫下搬磚的猿類,請珍惜愛護他們……
    運維苦,運維累!網絡設備故障讓運維崩潰!別過大師,我一路向南……目前國內的IT運維還處於救火隊員的初級階段,除了髒活就是累活,天天疲於奔命。什麼網絡中斷、應用卡頓、響應速度慢、伺服器宕機、變更管理和審計等等,各種突發故障都可能讓業務失敗,傳統運維手段特別費時費力,挖故障如同大海撈針,這著實讓運維人員急得團團轉,腫麼辦?
  • 3D 可視化變身電廠運維「巡洋艦」|數字孿生
    我國目前擁有41641個變電站,其核心業務是變電運維,運維質量直接關係到電網安全和可靠供電,責任非常重大。電網設備規模不斷擴大,新技術新裝備的廣泛應用,對廣大變電運維人員的工作能力和職業素養提出了更高的要求。HT for Web自主開發的基於HTML5的2D、3D渲染引擎,為可視化提供豐富的展示效果。
  • 這份阿里大牛全網首發600頁Nginx應用運維實戰筆記,真香
    前言這是一部基於Nginx新版本和雲原生應用場景系統講解Nginx的著作,是作者十餘年運維經驗的總結。本書從應用、運維以及與Kubernetes和微服務集成3個維度對Nginx的基礎知識、工作原理、核心應用、運維管理、集成擴展等重點內容進行了全面、細緻的講解。
  • 「每日github」6:restful接口mock工具:json-server|K8s上榜等
    宣傳的目標是使react應用更簡單。2,moment / momentmoment.js是一個JavaScript的時間日期處理類庫。這個庫還是相當好用的,各種時間日期顯示操作功能齊全,且有多語言支持。這個庫建議大家收藏,你必然會用到的,到時候不需要自己重複造輪子。這也是我寫這一些列文章的初衷,避免重複造輪子。
  • 拿什麼拯救你:苦逼的IT運維工程師!
    ,比如流量控制、ESB消息隊列的部署、服務降級、合理調整批量計劃來規避來至各電商企業的支付請求的業務高峰~所以雙十一加班也只是睡睡大覺,有什麼問題監控組的同事去休息室喊一聲就得了~最多的問題也就是單筆業務交易時間在某個峰值稍微變長一些,沒有太激動人心的事比如核心crash什麼的()對於運維工具我感覺更多的還是進行定製吧,畢竟每個公司的業務都不盡相同,當然對於一些基礎需求還是可以通過一些開源工具進行解決吧比如
  • 設備智能運維——企業降本增效的「殺手鐧」
    大家好,我是因聯科技呂芳洲,非常榮幸能在這裡跟大家分享我們對設備智能運維的一些理解和體會,今天將為大家分享為什麼在未來整個製造業發展中設備智能運維是企業降本增效的一個有效手段。設備進行自我表徵和實現自我感知的手段和方法有很多,下面為大家介紹其中幾個。可以看到,整個設備的失效模型呈現這樣一個曲線,從設備產生初始損傷一直到設備完全失效,不同的場景對應不同的方法,沒有一種方法適合所有場景。溫度測試主要反映磨損類故障,當溫度出現異常時,說明設備已進入故障晚期,這個方法簡單,可作為狀態監測參數。
  • 第十一屆IT運維大會點燃成都
    11月17日,由《網絡安全和信息化》雜誌社、IT運維網主辦,ManageEngine與360企業安全事業部協辦的"第十一屆IT運維大會本屆大會主題為"新基建,新運維",來自各行業IT精英紛紛響應,共同研究基建與運維的重大變革。
  • 大道至簡,衍化至繁:證券企業系統高可用運維之道
    我們結合證券行業頻繁測試的背景將高可用場景分為:結構簡單但是由於數量多導致的複雜場景和由於多系統業務關聯導致的複雜場景兩大類。前面我們從技術視角出發把高可用技術分為4類。現在我們站在運維的視角,把高可用技術重新分類為2類:需要維護和無需維護。如果把高可用比做一個大廈的話,那麼建造這個大廈就需要兩種基石。
  • 中年大叔學編程-Python實現簡單的視頻編輯
    MoviePy的簡單使用首先第一步當然還是安裝MoviePy這個庫pip install moviepy我們先來一個簡單的示例-剪切視頻,先看看原視頻的時間長度開始編碼吧from moviepy.editor import *video = VideoFileClip("D:/S年歌行-07.mp4")
  • 當電力管理遇上自動化,一次企業盈利的升華之旅
    例如,使用AVEVA和ETAP(電力系統分析軟體)的電力和流程仿真建模軟體可將工藝流程仿真、三維資產模型、電力系統這三個截然不同的領域集成進來,通過對各類變化(工藝條件的變化、進料的變化和業務指令的變更)的模擬完善工廠設計,這種孿生行為模型成為工廠生命周期中必不可少的數字資產和重要工具。
  • 跟著農村生活汙水運維人員跑鄉村
    公司主要承擔全區工業廢水和城鄉生活汙水的收集與輸送、截汙工程規劃與建設、汙水處理費收取、進網水質水量監測等職能,以及全區農村生活汙水處理設施運維管理工作。公司與全區400多家入網工業企業籤訂汙水入網協議,目前截汙範圍覆蓋2區、16個鄉鎮街道,汙水主管網長400餘公裡,有汙水泵站76座,其中鄉鎮委託43座,基本實現遠程自動化控制。