- 论坛徽章:
- 0
|
本帖最后由 本友会机友会摄友会 于 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倍。
- $一堆文件目录对象_从被控机返回到了主控机 = krun { Get-childitem -path /tmp }
- $一堆文件目录对象_从被控机返回到了主控机 |Where-Object {$_.lastwritetime.day -eq (get-date).day }
- #在这些对象的属性中,筛选出写入日期是今日的文件,并显示。
复制代码
Powershell远程传递对象级变量。对azure,aws,vmware,win被控机有极大的优势。
那么说,对linux被控机,是否有优势?
答:你若用powershell命令,而不用linux命令就有优势。或者你通过linux命令的输出,手动构造出对象并返回。
具体我们看一下代码:
- $主控机变量a = k_run_ip -ip 1.2.3.4 {date} #linux命令不返回对象。这样就没有优势。
- $主控机变量b = k_run_ip -ip 1.2.3.4 {get-date} #get-date命令返回对象。这样就有优势。
- $主控机变量b.AddHours(-25) #被控机时间,前25小时
复制代码 对象的使用场景:
传日期对象,数组对象,传哈希表对象(yaml),表格对象(pscustomobject),ip地址对象等。
上面这张图,就是我在被控机上,用linux命令ip addr输出的字符串,经过字符串处理,构造成powershell对象返回了。脚本并不难写,感兴趣的人,请自行查看脚本内容。
脚本网址,未能贴上
那么在主控机上,怎么用呢?请看:
- $主控机变量c = k_run_ip -ip 被控机ip地址 { fh返回网卡名_mac_ip_linux.ps1 }
- $主控机变量c | Where-Object NetworkAdapter -eq eth0
- 返回:
- NetworkAdapter : eth0
- MAC : 00:15:5d:15:59:09
- IPV4 : {192.168.168.85/24, 192.168.168.86/32}
- IPV6 : {fe80::215:5dff:fe15:5909/64}
- PSComputerName : 192.168.168.85
- RunspaceId : 04eafa70-6bad-4104-b401-a06023d6eed8
- ($主控机变量c | Where-Object NetworkAdapter -eq eth0 ).mac
- 返回:
- 00:15:5d:15:59:09
-
复制代码
大家可以看到,在linux下用《linux-win批量运维宝》只要有了对象,用户使用就变得简单起来。妙不?
注意: azure,aws,vmware,win被控机,中的powershell命令,天生就会返回对象给主控机。
后记:
没有吃,没有穿,自有那敌人送上前;没有对,没有象,传教士给你们造~~~
面向对象编程开发,已经臭了大街了。可惜,在批量运维领域,在主控机-被控机之间,远程传参传对象。除了《linux-win运维宝》,就是没有。
谢谢观看,完。
|
|