设为首页 收藏本站
查看: 4559|回复: 0

[经验分享] CheungSSH自动化运维工具比Ansible Saltstack更经典史上最强大的的批量自动化管理工具 管理上千台服务器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-6 09:41:52 | 显示全部楼层 |阅读模式

  • CheungSSH简介

  • CheungSSH是一款中国人自主研发的Linux运维自动化管理服务器软件,是具有中国特设社会主义的IT自动化运维管理软件
  • 国产软件,更知道中国人的习惯,全程采用全中文,并且提供技术支持
  • 国产,或将在以后进入国家扶持的互联网产品序列
  • 以堡垒机形式,替代人工管理服务器
  • 无Agent代理客户端,采用Linux自带的SSH协议通信
  • 不需对被管理服务器做任何配置,甚至是简单的SSH配置都不要,只需要开启SSH服务即可,通过您的远程服务器密码或者Pubkey管理登录
  • 采用Mysql Oracel数据库存储服务器敏信息
  • 采用Redis缓存数据,解决了以往各种自动化工具解析过程慢的问题
  • Web UI 图形界面更人性化,符合中国人的操作习惯
  • 不需要学习CheungSSH如何使用,只要会点击鼠标即可,因为语法不面向使用者
  • 权限控制,记录每一个操作动作,可供运维安全审查


  • 在这里,我希望CheungSSH有朝一日能成为中国IT界运维自动化的首选目标,通过与各位IT界人士的努力,一道践行社会主义核心价值观,并实践我们的中国梦

CheungSSH针对的问题
  • 命令批量执行

  • 脚本批量执行

  • 文件自动上传

  • 文件自动下载

  • 把所有工作加入计划任务

  • 自动部署软件



  • 程序自动同步

  • 被管理服务器资产收集

  • 服务器状态检查

  • 技术介绍

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

后端    Django  Redis  Mysql Oracle SSH paramiko websocket crontab SFTP Cache

  • CheungSSH优势


  • 简单,不需要特定的语法,不需要学习,即使不懂得Linux的人也能操作
  • 功能完备,命令执行、文件传输、批量部署程序、服务器资产信息收集、计划任务、开放的API等主要功能
  • 开源,使用免费
  • 不掺杂Linux之外的概念,让懂得Linux的人使用起来更得心应手
  • 无需安装任何插件
  • Python开发,开源代码
  • 通过SSH管理服务器,通信安全,无需开启额外的端口和启动额外的程序
  • 安全存储数据,采用Mysql Oracle数据库
  • 通过SSH管理登陆,无需额外创建任何管理账号,只需要业务账号即可,即平时登陆服务器的账户。做到无痕操作,不给服务器增加额外负担
  • 运行速度快,采用缓存技术


  • CheungSSH架构
  • 模块架构:
  • 765173-20151027202020200-572586135.jpg
  • 运行架构:
  • 765173-20151027202039357-1971983091.jpg
  • 765173-20151027202054060-1170580068.jpg

  • CheungSSH作为堡垒机角色,替代管理人员对众多服务器进行管理,解放运维管理员的双手,并且有相应的审计、权限管理功能

  • 我们的团队
  • 总设计师 :       张其川

  • 前端总负责人:覃亚东
  • 后端总负责人:张其川


联系我们
官方QQ群:445342415
官方微信群
  • 765173-20151027202114310-1035773689.jpg

捐助支付宝
  • 765173-20151027202130997-241497339.jpg

  • 下载地址

https://www.github.com/zhangqichuan/CheungSSH
安装
  • [iyunv@cheungssh tmp]# unzip CheungSSH-Master.zip
  • [iyunv@cheungssh tmp]# cd CheungSSH-Master/bin/
  • [iyunv@cheungssh bin]# sh install-CheungSSH.sh  

  • 温馨提示:建议您使用Yum联网安装依赖模块


登录CheungSSH Web
  • 765173-20151027202146388-1303834964.jpg

  • 温馨提示:
  • 如果登录次数联系超过5次,那么系统会锁定登录IP一天时间
  • 首次登陆后修改密码 http://您的IP地址:端口/cheungssh/admin/

  • 添加被管理主机配置信息
    • 点击 “增加服务器”
    • wKioL1Y6-DXjfzuqAAKky0nz9DA449.jpg
    • 添加好以后,如下:


  • 765173-20151027202257919-201765144.jpg

  • 普通配置
只需要添加被管理主机的IP,端口,登陆用户名, 密码既可以
  • 高级配置


    • sudo登录
您可以选择sudo为 ”是“ 表示执行命令的时候,是启用了sudo,并且在执行命令的时候不用输入sudo开头, 直接是命令, 比如原本是sudo ifconfig ,现在只需要 ifconfig,CheungSSH为您自动切换
765173-20151027202333216-611155217.jpg
  • su - root

您可以选择su为是; 表示执行命令的时候,是启用了su - root,并且在执行命令的时候不用输入su - root开头, 直接是命令, 比如原本是su - root后,执行 ifconfig ,现在只需要 ifconfig,CheungSSH为您自动切换
765173-20151027202342794-1075767890.jpg






    • 执行命令应用场景:执行一个whoami的命令,请记得,这个命令是在被管理的远程服务器上执行的


765173-20151027202403216-211411872.jpg
命令回显,功能区域介绍:
765173-20151027202416700-211985936.jpg



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
关于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





  • 选择服务器
    • 应用场景:假如您现网有一万台服务器,那么本次您只想对其中的一千台服务器进行操作,那么您可以挑选出要执行任务的主机

  • 765173-20151027202427638-1809664680.jpg

  • 添加计划任务
  • 应用场景
  • 加入今晚需要对一部分的主机在24:00的时候执行一些命令,用来收集服务器的信息,此时,您使用该功能就不用值夜了,交给CheungSSH的计划任务模块,那么您就可以安心睡大觉了


765173-20151027202454232-66700765.jpg
选择计划任务的时间 ,这里与Linux系统的  分 时  日 月 星期 一一对应:
765173-20151027202518216-2063422667.jpg
确认计划任务的时间,可以看到这个时间格式跟Linux系统的一模一样,没错,我们就是把它做成了操作系统的crontab功能:
765173-20151027202537529-1035945255.jpg
765173-20151027202552029-1090535022.jpg

  • 查看计划任务


  • CheungSSH计划任务查看

765173-20151027202552029-1090535022.jpg

  • 操作系统计划任务查看




    • [iyunv@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#




  • 文件下载




    • 文件传输记录应用场景:对于所有的上传 下载文件的记录 我们都做了记录,下面是传输的记录:

765173-20151027202622435-341484698.jpg

  • 文件下载应用场景:在远程被管理的服务器上有一个文件,此时如果您需要获取文件内容,那么您可以使用我们的下载功能,把远程服务器上的文件下载到CheungSSH服务器上,然后从CheungSSH服务器再下载到您的本地电脑PC机器上,然后神奇的是,这一切过程,都是自动的!
  • 1
    友情提示:不仅支持文件下载,还支持目录下载哦!




765173-20151027202640357-2014024661.jpg
765173-20151027202704310-153875546.jpg
从远程服务器下载文件到CheungSSH上以后,自动弹出下载成功的文件,并且显示没有下载成功的文件:
765173-20151027202733669-1100440643.jpg \
从CheungSSH上下载刚才从远程服务器上下载的文件到您的本地电脑上:
765173-20151027202745325-1560364963.jpg

  • 文件上传应用场景:假如您需要更新或者上传一些文件到被管理服务器上,那么这里您可以使用上传功能:

765173-20151027202810747-1695685759.jpg
文件上传和下载 都有进度显示的哦!
765173-20151027202928904-2082092887.jpg
1
2
3
4
5
6
7
8
9
10
11
12
其实我们利用的就是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)



1
温馨提示:您依然可以上传一个文件夹的哦!




  • 脚本管理

  • 目前脚本还在开发中, 不支持执行脚本,支持创建脚本和上传脚本


765173-20151027202945529-2049782874.jpg
765173-20151027203037154-387009747.jpg
  • 开放API

  • 主机信息API
  • 服务器运行日志API
  • 服务器状态检查API
  • 文件传输API
  • 命令执行API
  • 资产信息API
  • 计划任务API

  • 待开发功能

  • 资产收集后端已经完成,前端还在开发中

  • 审计功能后端已经完成, 前端还在开发中

  • 自动部署软件,开发中

1
2
3
4
5
总结:
      对于运维来说,以前意味着加班,加点。任务量大,其实很大一部分都是重复的工作,所以效率极低
      当问题出现的时候,通常是把自己搞的手忙脚乱,尤其是在服务器众多的情况之下
      就算没有更多的工作任务,但也是需要经常熬夜部署上线服务,比如Tomcat部署Weblogic,因为这个只有在无人使用的时候才能做的变更
      安全得不到保障,当服务器出现了问题,往往不知从何插手,因为安全记录是在太分散



1
2
3
4
CheungSSH带来的福音:
       代替人工管理服务器
       自动化的对服务器进行操作
       所有的操作都将被记录, 并提供审计



1
2
3
最后:
    彻底解放运维人员的双手!
    进一步解放了社会主义的劳动生产力,当然也就提高了我们的综合国力。



CheungSSH中国人自主研发的Linux运维自动化管理服务器软件,管理上千台服务器,自动化运维软件,批量管理服务器,管理Linux服务器软件,Web执行命令,上传下载文件,添加计划任务,运维自动化软件,工具平台,运维人员必备,系统管理员必备软件 SSH登录,安全速度快,中国的Ansible,Slatstack,Puppet CheungSSH 中国人自主研发的Linux运维自动化管理服务器软件 管理上千台服务器 自动化运维软件 批量管理服务器 管理Linux服务器软件 Web执行命令, 上传下载文件, 添加计划任务 运维自动化软件 工具 平台 运维人员必备,系统管理员必备软件 SSH登录 安全 速度快 中国的Ansible Slatstack Puppet


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135745-1-1.html 上篇帖子: ansible使用yum模块问题请教 下篇帖子: CentOS 6.5 Ansible详细部署 管理工具 服务器 经典
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表