zoukankan      html  css  js  c++  java
  • 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": "u672au542fu52a8", "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个单位和用户,他们很少问我这个功能如何使用,都是一看就明白! 
           


    
    
  • 相关阅读:
    62. Unique Paths (JAVA)
    60. Permutation Sequence (JAVA)
    56. Merge Intervals (JAVA)
    53. Maximum Subarray (JAVA)
    Java的volatile
    int和Integer的区别
    Java线程
    spark搭建部署
    spark源码编译
    Scala隐式转换和隐式参数
  • 原文地址:https://www.cnblogs.com/cheungssh/p/5025854.html
Copyright © 2011-2022 走看看