- 论坛徽章:
- 0
|
1,采用sshkey 公钥认证的方式,写个for 循环shell脚本,逐一分发下去。具体实现方式搜索下linux sshkey无密码认证登录。
2,个人建议用puppet,权限很清晰,策略管理很灵活,大型服务器集群管理起来非常的方便。主要就是配置puppet较为复杂,本人现在就用。
3,expect 脚本的话,如下
#!/usr/bin/expect -f
set IP [lindex $argv 0] #获取ip
set PASSWORD [lindex $argv 1] #获取密码
set timeout 20
spawn scp /etc/ssh/sshd_config root@$IP:/etc/ssh#同步配置文件
expect {
"yes/no" { #判断是否第一次登陆
send "yes\n"
expect "password:"
send "$PASSWORD\n"
}
"password:" { send "$PASSWORD\n"
}
}
sleep 2
expect "]*" #获取ps1
send "/etc/init.d/sshd restart \n" #重启服务
sleep 1
send "exit \n" 退出
expect eof
完成expect 脚本后,再写个shell for循环
#!/bin/bash
for i in `cat ip_pass.log` #读入服务器ip与密码
ip="`echo $i |awk -F: '{print $1}'`"
ps="`echo $i |awk -F: '{print $2}'`"
do
./sync_conf.exp $IP $PASSWORD
sleep 2
done
exit 0
ip_pass.log 文件格式为 192.168.2.2:passwd
大致的思路就是,先写expect 脚本,将配置文件同步至服务器,输入密码,再重启服务。
然后用shell脚本读入服务器密码,与ip.
缺点就是如果同步大量服务器时间会比较过长。 |
|