shell线上环境puppet证书异常 重新进行认证脚本,shellpuppet常见操作会删除服务端


工作中常遇到puppet服务端/客户端证书认证异常,需要重新生成证书。常见操作会删除服务端/客户端证上相关的老证书,然后生成新证书。针对这种情况,编写了一个shell脚本,只需将此脚本在Client端定时运行即可。由于脚本中涉及到了明文密码,为了提高安全性,可以考虑对此脚本进行加密(可参考:http://lxsym.blog.51cto.com/1364623/768286)


#!/bin/bash


# 对客户端异常重新颁布puppet证书


# 2012/05/30 Richard Shen


SIP="192.168.11.6" #server端ip


SPASSWD="hello" #server端root密码,


host=`hostname`


s_dns=".dns.abc.com.pem" #内部DNS解析Host-IP对应,根据实际情况而定


s_ca_name="$host$s_dns" #$host在server端的证书文件


R_NUM=`/usr/sbin/puppetd --test --server pup-ser-01.dns.abc.com | grep "notice: Finished" | wc -l`


[ ! -f /usr/bin/nc ] && yum -y install nc


[ ! -f /usr/bin/expect ] && yum -y install expect


#LOGIN PUPPET SERVER


auto_smart_ssh () {


expect -c "set timeout -1;


spawn ssh -o StrictHostKeyChecking=no $2${@:3};


expect {


*assword:* {send -- $1r;


expect {


*denied* {exit 2;}


eof


}


}


eof {exit 1;}


}


"


# return $?


}


#判断正常与否,进行2次


i=0


while [[ $i -lt 2 ]]


do


if [ $R_NUM -ne 1 ];then


rm -rf /var/lib/puppet/ssl/*


auto_smart_ssh $SPASSWDroot@$SIPrm -rf /var/lib/puppet/ssl/ca/signed/$s_ca_name


/usr/sbin/puppetd --test --server pup-ser-01.dns.abc.com


else


echo "$host puppet client is ok"


fi


let i=i+1


done

相关内容

    暂无相关文章