shell脚本,批量部署服务器

我有三十台服务器,想编写一个shell脚本,运行脚本就会一台一台登陆服务器进行操作 比如创个文件夹,给磁盘分个区什么的,每一台服务器的操作都一样,请问代码应该怎么写,我写的这个能进去,但是进去服务器后就不能进行操作了(安全问题,不能使ssh免密)

img

img

按这样思路来就可以,
要远程执行的命令写在单独sh文件里,循环对每一台服务器执行:通过scp命令传sh文件到远程服务器,通过ssh命令连接到远程服务器执行sh文件

要么明文在脚本里写密码,要么用公私钥

如果在云上布署,建议直接用云的弹性伸缩(AS)产品,只需要配置一下就可以了,快捷,方便,各大云厂商,应该都支持,自已写脚本比较费劲

Expect 中的interact指令允许用户交互。具体用法可以查一下。

1 第一种方法 使用ansible的script模块,把命令写入脚本,ansible批量执行
2 使用ssh-pass命令, sshpass -p xxx ssh root@192.168.11.11 'w' -o StrictHostChecking=no 免输入yes。-p后接密码,单引号中间是要执行的命令,可以再配合循环遍历ip执行各种命令