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


CheungSSH web2.0 發布文檔



 

  • CheungSSH 簡介

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


  • ChuengSSH 特點

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

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

  • 易於二次開發,python語言,開源代碼,使用完全免費

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

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

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

  • 管理簡單,無需額外創建任何管理賬號,只需要CheungSSH業務賬號即可,即平時登陸服務器的賬戶。做到無痕操作,不給服務器增加額外負擔

  • 效率更高,采用Redis緩存技術,所有的數據都緩存在Redis中,讀取更快速

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

  • 權限審核,所有的操作, 均有操作記錄

  • 堡壘機,所有的行動,都由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個單位和用戶,他們很少問我這個功能如何使用,都是一看就明白! 
       


 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM