- 论坛徽章:
- 0
|
场景:主控机=win,或主控机=linux。被控机=linux
我来谈谈这个问题:
1首先除掉无主机公钥,knowhost的问题。
2win主控机上没有expect。就算是有,也不建议用,不方便批量。
3linux被控机上有,通过ssh【只能执行单行命令,脚本问题】。这个问题源于bash。
用【在被控机安装powershell】的路子,即可解决ssh-bash,只能远程发送单行代码问题。
4批量运维一般用root账户,无疑ssh-key-file是更安全的。甚至要把root+密码禁止掉。
密码可以改,ssh-key-file不能改。ssh-copy-id有只向被控机添加多个公钥key问题。黑客也可以添加key。这造成了不安全。
kasini3000独创了【双ssh-key-file】交替使用,交替更换的路子。
kasini3000独创了【校验双ssh-key-公钥】的路子。校验公钥文件,让公钥文件内,只有2个公钥。
用法:
1 Remote command line:(from win,linux master,to win,linux node)
$object_return_from_node_to_master = ./k_run_ip -ip 1.1.1.1 -scriptblock {command_on_node} -allparameter $a,$b
$object_return_from_node_to_master = ./k_run_ip -ip 1.1.1.1 -file 'd:\script_file_on_master.ps1' -allparameter $a,$b
$string_return_from_node_to_master = ./k_run_ip -ip 1.1.1.1 -scriptblock { bash /tmp/xxx.sh} -allparameter $a,$b
例子:
主控机写一个脚本【a.ps1】
======================
./k_run_ip -ip 1.1.1.1 -scriptblock {
#command_on_node
#这里可以有很多行
#if,for,调用被控机其他脚本。
#还有比这更简单的吗?
} -allparameter $主控机对象1,$主控机对象2
======================
需要先编写nodelist.csv,内填入ip,22,root,pwd,首次运行,会自动用root账户,密码,推送公钥。
结论:
1脚本传参时,远程传递对象,是脚本批量运维的未来。
2批量运维软件可以安装在win,linux主控机。在一套软件内,能控制win,linux被控机,是脚本批量运维的未来。
3远程传递代码块,而不是【一行流】,是脚本批量运维的未来。
4穿透堡垒机,是需要的功能。
5多进程,多线程批量,结果入库,可以根据ip,时间查询结果。
linux上一键安装powershell,
使用win,linux通用的,几十mb的kasini3000,你就掌握了未来。
卡死你3000,开源,免费,跨平台!脚本批量运维框架,而不是yaml框架。
|
|