1. #!/bin/bash 
  2. cmd="puppet agent --test --server server.domain.com" 
  3. while read line 
  4. do 
  5.     host=`echo $line |awk '{print $2}'` 
  6.     password=`echo $line |awk '{print $4}'` 
  7.     port=`echo $line |awk '{print $3}'` 
  8.     user=`echo $line |awk '{print $1}'` 
  9.     expect -c " 
  10.          spawn ssh -l$user $host -p$port \"$cmd\" 
  11.          expect { 
  12.                 \"yes/no\" { send \"yes\n\";exp_continue;} 
  13.                 \"assword:\" { send \"$password\r\"; } 
  14.                 } 
  15.          expect eof 
  16.     " 
  17. done < ip.txt 

ip.txt请另行添加

ip.txt文件内容如下:

root IP 22 password

简要说明:文件内容由用户 IP地址 SSH端口号 密码组成

补充说明:一般我们都是在客户端拉,所以写了个expect,也可以再服务器端直接推送也是可以的,在那个客户端安装脚本 安装完启动Puppet就将开启8139端口,所以只要在服务器开放这个端口和8140端口;