kasini3000Win-Linux 批量运维宝
kasini3000 是一个开源、免费、跨平台,批量+自动化,的脚本框架。类似于Puppet,SaltStack,Ansible,pipeline。号称比ansible好10倍,具有批量远程推送脚本,执行脚本,远程传递代码块,定时执行的,devops运维工具。国产软件。
核心功能:
- 多进程,多线程,远程批量执行命令。主控机支持win,linux,mac等。被控机支持win,linux、
- 主控机,被控机之间复制文件,推送脚本。
- 主控机主备高可用。
- 监控,报警。
- 主控机定时任务。
技术,协议,或特性关键字:
- 离线安装win,linux,主控机,被控机及所有库。
- winrm,ssh,在win、linux之间rsync,批量telnet,批量sftp,批量ftp-sync,批量sftp-sync,sqlite,远程传对象,批量数据库客户端,
- 图片报警,气球报警,声音报警,微信报警,钉钉报警。
- 支持从win,linux主控机,sodo登录到linux被控机。
- 免费支持1种linux2winrm的批量。收费支持另一种linux2winrm的批量。
- 从主控机到被控机的远程命令行,支持linux被控机中只有bash,而没装pwsh。但不建议这么用。
特色:
- 开源+免费。通过调用100%兼容linux下的shell,perl,py等脚本和传值。通过调用100%兼容win下bat,vbs,py等脚本,和传值。100%兼容各平台下的所有脚本。
- 跨平台:主控机、被控机程序,支持x64和arm cpu架构。可以安装在win,麒麟v10高级服务器版x86-64 (Tercel),统信UOS服务器版2020,阿里anolis8,Alibaba Cloud Linux2,Alibaba Cloud Linux3,Rocky Linux release 8,AlmaLinux release 8,centos7,centos8,amazon linux 2,oracle linux server 8, ubuntu1404--ubuntu2004,debian8--debian11,alpine 3.9--alpine 3.13,mac,树莓派,安卓手机、平板上。主控机程序可以win,linux同时使用。支持多台主控机同时使用。
- 通过powershell语言,经过winrm协议(win默认)管理win被控机。经过ssh协议管理linux被控机。
- 主控机支持同时管理多个公有云,私有云。支持azure,aws,vmware,阿里云,腾讯云等。
- 世界独有的【主控机】<--->【被控机】远程传递【对象级】参数和值。多脚本公用【对象级】变量。管道之间传递【对象级】变量。脚本参数传值编写,比shell简单10倍。
$一堆文件目录对象_从被控机返回到了主控机 = krun { Get-childitem -path /tmp }
$一堆文件目录对象_从被控机返回到了主控机 |Where-Object {$_.lastwritetime.day -eq (get-date).day }
#在这些对象的属性中,筛选出写入日期是今日的文件,并显示。
- 支持把yaml文件,json字串,解析成哈希表对象形式,继而读写,传值。而不是字符串找替。
- 主被控机文件互传。支持win<--->win。Linux<--->linux。和win<--->linux。支持mac。树莓派。
- 基于主控机的任务计划,10秒级别,触发器支持67分钟循环一次。任务计划支持双机高可用。
- 开发效率高!支持在win上经vscode+ssh模块远程开发,远程调试,单步,断点,执行鼠标选中代码。
- 支持搭配zabbix,jenkins使用。
- 容易穿透堡垒机,被控机。单脚本+单语言,从a机传递代码块到b机,b机再到c机很容易。
- Win主控机:具有图形显示任务结果;声音报警;视频报警;语音朗读【中英文文本】报警;桌面背景图片报警;win右下角气球报警。win termal背景图片报警;发邮件;企业微信发图,发文字;发钉钉信息。
- 批量:多进程默认99个并发,并发数可调。多线程默认每进程50个并发线程,不限制进程数。线程级=超2000=大规模并发。具有自定义超时时间。
- 支持自定义sshd端口。支持【自动发送ssh密码】和【ssh-keyfile】登录被控机。支持普通账户登录,然后自动发送sudo密码。
没有如下基于yaml的运行工具缺点:
1 yaml有空格和缩进问题。 本项目没有。还支持中文脚本名,中文参数名,参数值等。
2关键字不兼容。Ansible,阿里云的运维工具云助手,腾讯云的蓝鲸,都用yaml,但它们之间的关键字不兼容。
3脚本套脚本像喝水般容易,管道容易。Yaml套yaml难,yaml套脚本难。
4 For是shell脚本人最常用的功能。自打ansible来了之后,它用yaml关键字定义和jinjia2代替了for。可以说for的腿被被打折了。3层for循环难倒ansible老司机。
5 管道传值如“a脚本语言编写的脚本1 | b脚本语言编写的脚本1”,这在基于yaml的语言中,难以实现。Python的对象,属性,方法,没有。处理对象费劲。
6 如上所述。想把win,linux命令封装起来,只能是用各种脚本语言。不用脚本语言,却非要用yaml是很别扭的。Ansible还致力于把win,linux命令封装成【参数、功能缩水的二手ansible库】
本项目开源许可证=自定义
License:customize
评论