Shell+Ansible+Crontab定期自动修改web密码

最近对维护的几个内部平台做了下安全升级,不仅有限制IP访问,还对web密码也做了定期更新。

整理了下发现几个平台修改密码的方式也不一样,有直接明文密码修改conf文件的,有md5加密后修改conf文件的,还有是md5加密后修改mysql数据库的。

定期手动去改不是一个运维该做的事。于是就想到了通过ansible下放shell脚本结合crontab方式进行定期修改。源码如下:

#/bin/bash


function pwd()

{

#生成密码文件

newpwd=`mkpasswd -l 8 -s 0 >pwd`

#把密码文件传输到对应需要修改密码的机器上,这边目前还没有想到更好的方法实现,所以只能用最简单的scp方式了

scp ./pwd [email protected]:/tmp

scp  ./pwd [email protected]:/tmp

scp ./pwd [email protected]:/tmp

}

#直接通过明文方式修改密码
function host1()
{

#获取旧密码
host1_oldpwd=`cat /usr/local/host1/config.py |egrep "PASSWORD" |egrep -v "DBPASSWORD" |awk -F \' '{print $2}'`

host1_newpwd=`cat /tmp/pwd`

#直接在config文件中修改密码

sed -i "s/'"$host1_oldpwd"'/'"$host1_newpwd"'/g" /usr/local/host1/config.py


rm /tmp/pwd -rf
}

#通过md5加密方式修改密码
function host2()
{
host2_newpwd=`cat /tmp/pwd`

host2_md5pwd=`echo -n $host2_newpwd | openssl md5`

#获取旧密码

host2_oldpwd=`cat /usr/local/host2/conf/users.php |grep administrator |awk -F ':' '{print $2}'`

sed -i "s/'"$host2_oldpwd"'/'"$host2_md5pwd"'/g" /usr/local/host2/conf/users.php

rm /tmp/pwd -rf

}

#t通过md5加密方式修改数据库密码
function host3()
{
host3_newpwd=`cat /tmp/pwd`

#获取加密后的密码

host3_md5pwd=`echo -n $host3_newpwd | openssl md5 | awk -F " " '{print $2}'`

USER="root"

PASS="123456"

DB_NAME="test"

UPDATE_PWD="update users set passwd='$host3_md5pwd' where userid = '1'"

/usr/local/mysql/bin/mysql -u ${USER} -p${PASS} -D ${DB_NAME} -e "${UPDATE_PWD}"

rm /tmp/pwd -rf
}

while [ $1 ]; do
case $1 in
'--host1' | 'host1' )
host1
exit
;;
'--host2' | 'host2' )
host2
exit
;;
'--host3' | 'host3' )
host3
exit
;;
'--pwd' | 'pwd' )
pwd
exit
;;
esac
done


运行命令:

$ autopwd.sh pwd   #先生成密码文件

$ ansible -i host host1 -m script -a '/opt/autopwd.sh host1'

$ ansible -i host host2 -m script -a '/opt/autopwd.sh host2'

$ ansible -i host host3 -m script -a '/opt/autopwd.sh host3'

#把上面命令加到crontab中去即可

host文件内容:(这样按类别分开,ansible就能实现指定机器运行)

[host1]

192.168.0.10

[host2]

192.168.0.11

[host3]

192.168.0.12

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

  1. avatar 电动螺旋压力机 1

    您好,您的网站做的很不错,很漂亮,我已经收藏了,方便我随时访问.