免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1900 | 回复: 0

[其他] linux-win批量运维宝,远程传对象之妙 [复制链接]

论坛徽章:
0
发表于 2022-05-28 12:31 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2022-05-28 13:16 编辑

《linux-win批量运维宝》远程传对象之妙

大家好!
   又到了分享的时间,今天给大家分享一款,开源,免费跨平台的devops批量运维工具《linux-win批量运维宝》。照例,我们先看看特色和简介。

简介:
        开源+免费+跨平台:主控机支持win,linux。被控机支持win,linux。安装简单,支持离线安装。
        主控机支持同时管理多个公有云,私有云。支持azure,aws,vmware ESXI,阿里云命令行aliyun,腾讯云,华为云hcloud等。
        通过powershell语言,经过winrm协议(win默认)管理win被控机。经过ssh协议管理linux被控机。Linux被控机,支持绝大多数发行版一键安装。支持arm架构cpu。
        支持把yaml文件,json字串,解析成哈希表(对象级变量)形式,继而读写,传值。而不是字符串找替。
        批量文件复制命令,运行命令等,支持多线程,多进程,并发运行。用户自由选择。
        对标ansible。和ansible的主要差别是本框架内置语言是脚本,而不是yaml。可以通过调用你的.py脚本,你的shell脚本。容易传值,并且100%兼容。另外,ansible不能安装在win中。本脚本框架极大地使用了win中的优势。如音箱+声音报警;视频报警;音箱朗读中英文文字报警;桌面壁纸+填字报警,桌面右下角气泡报警,win terminal图片报警等。
        支持用单个脚本,穿透linux开源堡垒机。到达内部局域网。
        基于主控机的任务计划,10秒级别,触发器支持67分钟循环一次。任务计划支持双机高可用。
        支持搭配zabbix,jenkins,k8s-master,vmware-host使用。
        本框架采用开放式架构,市集化开发。库基本用现成的。业务脚本自己开发。而ansible,Terraform,相对封闭。人家一旦关服。。。
        好的批量运维工具。对于云计算,devops,容器k8s管理,极其重要。欢迎企业基于本框架,构建批量运维,devops工具。


今天主要的话题:远程传对象之妙

世界独有的【主控机】---【被控机】远程双向传递【对象级】参数和值。多脚本公用【对象级】变量。管道之间传递【对象级】变量。脚本参数传值编写,比shell简单10倍。
  1. $一堆文件目录对象_从被控机返回到了主控机 = krun { Get-childitem -path /tmp }
  2. $一堆文件目录对象_从被控机返回到了主控机 |Where-Object {$_.lastwritetime.day -eq (get-date).day }
  3. #在这些对象的属性中,筛选出写入日期是今日的文件,并显示。
复制代码

Powershell远程传递对象级变量。对azure,aws,vmware,win被控机有极大的优势。
那么说,对linux被控机,是否有优势?
答:你若用powershell命令,而不用linux命令就有优势。或者你通过linux命令的输出,手动构造出对象并返回。
具体我们看一下代码:
  1. $主控机变量a = k_run_ip -ip 1.2.3.4 {date} #linux命令不返回对象。这样就没有优势。
  2. $主控机变量b = k_run_ip -ip 1.2.3.4 {get-date} #get-date命令返回对象。这样就有优势。
  3. $主控机变量b.AddHours(-25) #被控机时间,前25小时
复制代码
对象的使用场景:
传日期对象,数组对象,传哈希表对象(yaml),表格对象(pscustomobject),ip地址对象等。

网卡.jpg
上面这张图,就是我在被控机上,用linux命令ip addr输出的字符串,经过字符串处理,构造成powershell对象返回了。脚本并不难写,感兴趣的人,请自行查看脚本内容。
脚本网址,未能贴上

那么在主控机上,怎么用呢?请看:
  1. $主控机变量c = k_run_ip -ip 被控机ip地址 { fh返回网卡名_mac_ip_linux.ps1 }
  2. $主控机变量c | Where-Object NetworkAdapter -eq eth0
  3. 返回:
  4. NetworkAdapter : eth0
  5. MAC            : 00:15:5d:15:59:09
  6. IPV4           : {192.168.168.85/24, 192.168.168.86/32}
  7. IPV6           : {fe80::215:5dff:fe15:5909/64}
  8. PSComputerName : 192.168.168.85
  9. RunspaceId     : 04eafa70-6bad-4104-b401-a06023d6eed8


  10. ($主控机变量c | Where-Object NetworkAdapter -eq eth0 ).mac
  11. 返回:
  12. 00:15:5d:15:59:09

复制代码


大家可以看到,在linux下用《linux-win批量运维宝》只要有了对象,用户使用就变得简单起来。妙不?
注意: azure,aws,vmware,win被控机,中的powershell命令,天生就会返回对象给主控机。


后记:
没有吃,没有穿,自有那敌人送上前;没有对,没有象,传教士给你们造~~~
面向对象编程开发,已经臭了大街了。可惜,在批量运维领域,在主控机-被控机之间,远程传参传对象。除了《linux-win运维宝》,就是没有。
谢谢观看,完。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP