本程序是在salt环境下,调用了salt的命令来进行批量修改,所要修改的服务器host都是从/etc/host里面读取的,当然你可以自己新建一个host文件来读取,主要是方便host name的变更,另外采用了openssl来生成12位随机密码,并再修改完后写到文件里面备份。

    saltstack+python+shell批量修改服务器密码_第1张图片

py_xxx_passwd.py

#!/usr/bin/python
import commands
ip, host = commands.getstatusoutput("cat hosts|grep -v 'XXX'|awk '{print $2}'")
host_str = host.split('\n')
passwd_str = {}
for i in host_str:
        a,b = commands.getstatusoutput('openssl rand 12 -base64')
        c,d = commands.getstatusoutput('openssl passwd -1 '+b)
        e,f = commands.getstatusoutput("salt "+i+" shadow.set_password XXX '"+d+"'")
        passwd_str[i] = b
        print f
sts,file = commands.getstatusoutput('touch new_passwd.txt')
if sts == 0:
        file_w = open('new_passwd.txt', 'w')
        for key in passwd_str.keys():
                file_w.write('%s:%s\n' % (key, passwd_str[key]))
        file_w.close()


住:第一个XXX是去掉salt-master的host name,因为这些操作都是在salt-master里面做的,不去掉会提示错误,第二个XXX是每台服务器要修改的用户帐号,另外要修改root的,就直接修改第二个XXX为root就行了,这里就不贴出来了。