首页 > 代码库 > saltstack+python批量修改服务器密码

saltstack+python批量修改服务器密码

saltstack安装:略过

python脚本修改密码:

 1 # -*- coding utf-8 -*-
 2 import socket
 3 import re
 4 import os
 5 import sys
 6 import crypt
 7 
 8 
 9 localIP = socket.gethostbyname(socket.gethostname())
10 
11 def password():
12     localIP = socket.gethostbyname(socket.gethostname())   #获取本地ip
13     a = re.split([.], localIP)  #切割ip地址并生成列表
14     addr = a[3]
15     ps = "Subuy2017@"+addr
16     return ps
17 
18 new_passwd = crypt.crypt(password(),"ab")  #将生成的密码加密
19 change_passwd = "usermod -p %s test" %(new_passwd)     #采用usermod方式修改密码,必须使用密文密码来修改
20 os.system(change_passwd)
21 print("Congratulation!,password for %s is %s " %(localIP,password()))
22 sys.exit()

 

结合以上脚本配合saltstack 命令来批量修改服务器密码:

 1 [root@testd files]# salt -N ‘test‘ state.highstate
 2 rac2:
 3 ----------
 4           ID: file
 5     Function: file.managed
 6         Name: /usr/local/shell/change_passwd.py
 7       Result: True
 8      Comment: File /usr/local/shell/change_passwd.py updated
 9      Started: 10:57:38.489545
10     Duration: 568.87 ms
11      Changes:   
12               ----------
13               diff:
14                   ---  
15                   +++  
16                   @@ -17,7 +17,7 @@
17                        return ps
18                    
19                    new_passwd = crypt.crypt(password(),"ab")
20                   -change_passwd = "usermod -p %s test" %(new_passwd)
21                   +change_passwd = "usermod -p %s root" %(new_passwd)
22                    os.system(change_passwd)
23                    print("Congratulation!,password for %s is %s " %(localIP,password()))
24                    sys.exit()
25 ----------
26           ID: pkg_install
27     Function: cmd.run
28         Name: python /usr/local/shell/change_passwd.py
29       Result: True
30      Comment: Command "python /usr/local/shell/change_passwd.py" run
31      Started: 10:57:39.059976
32     Duration: 114.552 ms
33      Changes:   
34               ----------
35               pid:
36                   19860
37               retcode:
38                   0
39               stderr:
40               stdout:
41                   Congratulation!,password for IP地址 is Subuy2017@162
42 
43 Summary
44 ------------
45 Succeeded: 2 (changed=2)
46 Failed:    0
47 ------------
48 Total states run:     2
49 rac1:
50 ----------
51           ID: file
52     Function: file.managed
53         Name: /usr/local/shell/change_passwd.py
54       Result: True
55      Comment: File /usr/local/shell/change_passwd.py updated
56      Started: 10:57:39.149359
57     Duration: 598.117 ms
58      Changes:   
59               ----------
60               diff:
61                   ---  
62                   +++  
63                   @@ -17,7 +17,7 @@
64                        return ps
65                    
66                    new_passwd = crypt.crypt(password(),"ab")
67                   -change_passwd = "usermod -p %s test" %(new_passwd)
68                   +change_passwd = "usermod -p %s root" %(new_passwd)
69                    os.system(change_passwd)
70                    print("Congratulation!,password for %s is %s " %(localIP,password()))
71                    sys.exit()
72 ----------
73           ID: pkg_install
74     Function: cmd.run
75         Name: python /usr/local/shell/change_passwd.py
76       Result: True
77      Comment: Command "python /usr/local/shell/change_passwd.py" run
78      Started: 10:57:39.749030
79     Duration: 109.626 ms
80      Changes:   
81               ----------
82               pid:
83                   720
84               retcode:
85                   0
86               stderr:
87               stdout:
88                   Congratulation!,password for IP地址 is Subuy2017@161
89 
90 Summary
91 ------------
92 Succeeded: 2 (changed=2)
93 Failed:    0
94 ------------
95 Total states run:     2

 

saltstack+python批量修改服务器密码