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
安裝
-
[root@cheungssh tmp]# unzip CheungSSH-Master.zip
-
[root@cheungssh tmp]# cd CheungSSH-Master/bin/
-
[root@cheungssh bin]# sh install-CheungSSH.sh install #這是一鍵自動化安裝,無需人工解決依賴等頭疼問題,這是真正的運維自動化體現之一
-
-
溫馨提示:建議您使用Yum聯網安裝依賴模塊,本地安裝需要手動安裝依賴
更新
-
[root@cheungssh bin]# sh install-CheungSSH.sh update
登錄CheungSSH Web
溫馨提示:
如果登錄次數聯系超過5次,那么系統會鎖定登錄IP一天時間。
首次登陸后修改密碼 http://您的IP地址:端口/cheungssh/admin/
普通配置
這里,我們考慮的是,不需要被管理服務器做任何的配置, 哪怕是像某些工具需要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計划任務查看
操作系統計划任務查看
-
-
[root@cheungssh bin]# crontab -l
-
*/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
-
*/1 */1 */1 */1 */1 /home/cheungssh/bin/cheungssh_web.py 94246137977316460425
-
*/1 */1 */1 */1 */1 /home/cheungssh/bin/cheungssh_web.py 91254503983769069002
-
[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個單位和用戶,他們很少問我這個功能如何使用,都是一看就明白!