CheungSSH國產自動化運維工具開源Web界面

CheungSSH web2.0 發佈文檔



 

  • CheungSSH 簡介

    CheungSSH是一款國人自主研發的Linux運維自動化管理服務器軟件,秉着爲企業下降運營成本,解放管理員雙手和自動化生產的理念,創造的一套開源運維自動化系統。 javascript


  • ChuengSSH 特色
    css

  • 操做簡單,全程Web界面,不須要特定的語法,不須要學習運做原理,即便不懂得Linux的人也能操做,界面全中文,點擊鼠標就能指揮上千臺服務器有序運做 html

  • 功能完備,支持網絡設備,Linux服務器,Windows服務器,命令執行、文件傳輸、批量部署程序、服務器資產信息收集、計劃任務、開放的API等主要功能 前端

  • 易於二次開發,python語言,開源代碼,使用徹底免費 java

  • 簡易,無需安裝任何插件,管理方便,無後患 python

  • 安全無憂,經過Linux自帶的SSH協議管理服務器,通訊安全,無需開啓額外的端口和啓動額外的程序,全部的操做都在CheungSSH控制機上保留,不修改被管理服務器的任何配置數據 git

  • 安全存儲數據,採用Mysql Oracle數據庫 github

  • 管理簡單,無需額外建立任何管理帳號,只須要CheungSSH業務帳號便可,即平時登錄服務器的帳戶。作到無痕操做,不給服務器增長額外負擔 web

  • 效率更高,採用Redis緩存技術,全部的數據都緩存在Redis中,讀取更快速 sql

  • 權限控制,只有受權的操做,才能對現網生產服務器作改動

  • 權限審覈,全部的操做, 均有操做記錄

  • 堡壘機,全部的行動,都由CheungSSH替您執行,安全無憂、更省心、省時

  • 無人值守,基本解放運維人員的上手,解綁運維的生活時間

  • 非法操攔截,如  rm 命令,在沒有被受權狀況下,會被攔截

 

 



CheungSSH功能(持續開發中)

 

  • 命令批量執行

 

  • 腳本批量執行

 

  • 文件自動上傳

 

  • 文件自動下載

 

  • 入計劃任務

 

  • 自動部署軟件

 


 

  • 程序自動同步

 

  • 被管理服務器資產收集

 

  • 服務器狀態檢查

 

  • 技術介紹

  • 代替Vi編輯器的文件編輯

 

  • 前端:Angulars javascript jQuery   ngfileupload  scrollbar uigrid typeahead cors Bootstrap

後端 : Django  Redis  Mysql Oracle SSH paramiko websocket crontab SFTP Cache


  • CheungSSH架構


  • 模塊架構:

  • 運行架構:

  • CheungSSH做爲堡壘機角色,替代管理人員對衆多服務器進行管理,解放運維管理員的雙手,而且有相應的審計、權限管理功能

 



我先自問一句:「什麼是自動化運維?」 ,估計有人會說,一個強大的自動化運維工具。
       爲什麼需要自動化?       
      相信在IT運維的朋友都知道,運維自動化是這
兩年才大批的提起自動化?由於雲計算時代來了,公司的服務器規模空前龐大,之前一兩百個機器的時候, 在管理上尚未以爲有什麼,現在, 上千臺服務器,上萬臺服務器,出來了,如何有效的管理這些服務器?成爲了每一個老闆必須面對的問題!
 
       由於服務器多了,公司人手不夠,那麼老闆就不得不請更多的人,可是這樣下來, 老闆有一天發現了,這麼請下去,不是辦法啊,銀子跟水同樣嘩嘩流。因此目前,不少公司都在尋找第三方開發的自動化運維工具,好比puppet,ansible, saltstack等等。由於他們真的是想用這些工具的強大,來代替本身公司人力成本的支出。或者是本身公司請幾個專業的運維開發自行開發一個運維繫統。可是終究避不開一個問題---成本

        什麼又是自動化呢? 
        我發現,有很多人還在認爲,找一個功能很發達的工具,來管理公司的上千臺服務器,並且還能很靈活的管理,這樣就實現了自動化。在此,我要潑一瓢冷水!
那不叫自動化,由於即使選擇某些功能很發的工具,可是也避不開一個問題----成本!由於學習某些工具,須要大量的時間,並且學習的人,還必須有必定的Linux基礎,甚至是較好的Linux基礎,因此他仍是沒能把成本下降到最低,因此,這樣的狀況, 依然不叫自動化!
        由於我以爲請一個精通Linux的人,或者是一個比較熟悉Linux的人,成本都過高了,由於它不比請一個剛大學畢業的人成本更高!難道不是嗎?可是,請一個大學剛剛畢業的人,有幹不了這個事情啊,怎麼辦?
       因此,我認爲,在實現強大的功能管理的同事,還能最大限度的下降企業的營運成本,那纔是我心目中的運維聖地------運維自動化!!!


      CheungSSH爲何要存在?
      就像當年爲何Docs不受歡迎?微軟推出了圖形操做界面後,比爾蓋茨瞬間成爲首富!這是爲何?由於用戶須要的是簡單,再次簡單!不須要學習的系統,才能真正的受歡迎,因此,只須要經過點擊鼠標就能完成操做,這就是         CheungSSH追求的自動化與爲工具!解放企業的生產力!讓CheungSSH成爲您的業務供應鏈的可靠後勤保障系統。


      使用CheungSSH目的和帶來的價值
     實現運維全自動化,下降企業運營成本!是降到最低!使用CheungSSH,不須要再次學習shell操做,功能倒是完備的。

     CheungSSH後續發展

     作一個功能強大的系統,能結合監控,CMDB,自動化運維一體的系統,而且使用學習成本更低,真正作到運維自動化!

聯繫咱們


 

官方QQ羣:445342415

 

官方微信羣

 

捐助支付寶

  • 下載地址

                      

https://www.github.com/zhangqichuan/CheungSSH


安裝


  •  

  1. [root@cheungssh tmp]# unzip CheungSSH-Master.zip

  2. [root@cheungssh tmp]# cd CheungSSH-Master/bin/ 

  3. [root@cheungssh bin]# sh install-CheungSSH.sh  install    #這是一鍵自動化安裝,無需人工解決依賴等頭疼問題,這是真正的運維自動化體現之一


  4.  

  5. 舒適提示:建議您使用Yum聯網安裝依賴模塊,本地安裝須要手動安裝依賴

更新

  1. [root@cheungssh bin]# sh install-CheungSSH.sh update

登陸CheungSSH Web


  • 舒適提示:

  • 若是登陸次數聯繫超過5次,那麼系統會鎖定登陸IP一天時間

  • 首次登錄後修改密碼 http://您的IP地址:端口/cheungssh/admin/


  • 添加被管理主機配置信息

    • 點擊 「增長服務器」

    • wKioL1Y6-DXjfzuqAAKky0nz9DA449.jpg

    • 添加好之後,以下:


  • 普通配置

這裏,咱們考慮的是,不須要被管理服務器作任何的配置, 哪怕是像某些工具須要SSH-key綁定同樣, 在CheungSSH中, 徹底不須要,由於我要作的是簡單,再簡單!因此,在添加被管理服務器的時候,你只須要填寫被管理服務器的登陸密碼, 或者是SSH-key,就是你平時登陸服務器的方式,簡單易懂!
因此, 我根本不須要多作介紹, 當你看到界面的時候,你一下就能明白!應該填寫什麼信息。請相信CheungSSH,咱們要作的,就是讓用戶感受簡單!
  • 高級配置


    • sudo登陸

您能夠選擇sudo爲 ”是“ 表示執行命令的時候,是啓用了sudo,而且在執行命令的時候不用輸入sudo開頭, 直接是命令, 好比本來是sudo ifconfig ,如今只須要 ifconfig,CheungSSH爲您自動切換


  • su - root

您能夠選擇su爲是; 表示執行命令的時候,是啓用了su - root,而且在執行命令的時候不用輸入su - root開頭, 直接是命令, 好比本來是su - root後,執行 ifconfig ,如今只須要 ifconfig,CheungSSH爲您自動切換







    • 執行命令

      應用場景:執行一個whoami的命令,請記得,這個命令是在被管理的遠程服務器上執行的

 

 

命令回顯,功能區域介紹:



 

 

關於websocket:
    class WebSocketServer(object):
    def __init__(self):
        self.socket = None
    def begin(self):
        print( 'WebSocketServer Start!')
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        self.socket.bind(("0.0.0.0",1337))
        self.socket.listen(50)


        global connectionlist


        while True:
            i=str(random.randint(90000000000000000000,99999999999999999999))
            connection, address = self.socket.accept()
            print '客戶端ip',address
            username=address[0]     
            ie_key='connection'+i
            path="/"
            newSocket = WebSocket(connection,i,username,address,path,ie_key)
            newSocket.start() #開始線程,執行run函數
            connectionlist[ie_key]=connection



選擇服務器


    • 應用場景:假如您現網有一萬臺服務器,那麼本次您只想對其中的一千臺服務器進行操做,那麼您能夠挑選出要執行任務的主機


      添加計劃任務

       

      應用場景:

      加入今晚須要對一部分的主機在24:00的時候執行一些命令,用來收集服務器的信息,此時,您使用該功能就不用值夜了,交給CheungSSH的計劃任務模塊,那麼您就能夠安心睡大覺了


 

選擇計劃任務的時間 ,這裏與Linux系統的  分 時  日 月 星期 一一對應:

確認計劃任務的時間,能夠看到這個時間格式跟Linux系統的如出一轍,沒錯,咱們就是把它作成了操做系統的crontab功能:


查看計劃任務

CheungSSH計劃任務查看



操做系統計劃任務查看


    1. [root@cheungssh bin]# crontab -l

    2. */1 */1 */1 */1 */1 /home/cheungssh/mysite/mysite/cheungssh/daemon_FileTransfer.py '{"status": "\u672a\u542f\u52a8", "lasttime": "2015-10-25 18:45:20", "cmd": "", "createtime": "2015-10-25 18:45:20", "sfile": "/var/log", "user": "bo", "fid": "92262569677243366214", "runtype": "download", "runtime": "*/1 */1 */1 */1 */1", "id": "99556469106"}' #92262569677243366214

    3.  */1 */1 */1 */1 */1 /home/cheungssh/bin/cheungssh_web.py 94246137977316460425

    4.  */1 */1 */1 */1 */1 /home/cheungssh/bin/cheungssh_web.py 91254503983769069002

    5. [root@cheungssh bin]#



       提示
             CheungSSH仍是爲了用戶考慮,經過以上的計劃任務, 您可能知道怎麼用, 可是對於計劃任務的結果, 運行流程,是感受不清晰的,在這裏,我想我有必要向您解釋一下,仍是那句話, CheungSSH要作到的是,讓用戶感受簡單,而且要真正讓用戶使用起來簡單,因此這個計劃任務的原理上是:在CheungSSH控制機器上作的計劃任務,並無在被管理的服務器上作計劃任務,這樣,就能爲您下降更多運營成本,重要的是,還不變更您的被管理機器,再一次作到穩定!下降複雜度!


文件下載


文件傳輸記錄

應用場景:對於全部的上傳 下載文件的記錄 咱們都作了記錄,下面是傳輸的記錄:


文件下載

應用場景:在遠程被管理的服務器上有一個文件,此時若是您須要獲取文件內容,那麼您可使用咱們的下載功能,把遠程服務器上的文件下載到CheungSSH服務器上,而後從CheungSSH服務器再下載到您的本地電腦PC機器上,而後神奇的是,這一切過程,都是自動的!


  • 友情提示:不只支持文件下載,還支持目錄下載哦!

從遠程服務器下載文件到CheungSSH上之後,自動彈出下載成功的文件,而且顯示沒有下載成功的文件:

從CheungSSH上下載剛纔從遠程服務器上下載的文件到您的本地電腦上:

 
 

  • 文件上傳

    應用場景:假如您須要更新或者上傳一些文件到被管理服務器上,那麼這裏您可使用上傳功能:


文件上傳和下載 都有進度顯示的哦!

其實咱們利用的就是paramiko的SFTP函數實現的:
def UpdateFile(ip,port,username,password,UseKey,sfile,dfile):
        try:
                t=paramiko.Transport((ip,port))
                if UseKey=="Y":
                        KeyPath=os.path.expanduser('~/.ssh/id_rsa')
                        key=paramiko.RSAKey.from_private_key_file(KeyPath)
                        t.connect(username = username,pkey=key)
                else:
                        t.connect(username = username,password = password)
                sftp = paramiko.SFTPClient.from_transport(t)
                ret=sftp.put(sfile,dfile)
舒適提示:您依然能夠上傳一個文件夾的哦!

  • 腳本管理


  • 執行腳本


  • 開放API

  • 主機信息API

  • 服務器運行日誌API

  • 服務器狀態檢查API

  • 文件傳輸API

  • 命令執行API

  • 資產信息API

  • 計劃任務API

  • 更多API .....

  • 更多功能

    腳本執行

        計劃任務

       權限審計

       權限受權

       安全設置

       更多功能...

還有堡壘機角色...


這裏不作一一介紹,當您看見了CheungSSH Web界面的時候,不須要我多作介紹了,您一眼就能看明白,這個東西應該怎麼用!由於咱們堅持作到簡約!更簡約!目前有800個單位和用戶,他們不多問我這個功能如何使用,都是一看就明白!

相關文章
相關標籤/搜索