1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
安装salt-ssh:yum install -y salt-master salt-ssh
master配置文件:cat /etc/salt/master
file_roots:
base:
- /srv/salt/
dev:
- /srv/salt/dev/services
- /srv/salt/dev/states
prod:
- /srv/salt/prod/services
- /srv/salt/prod/states
top.sls文件:cat /srv/salt/top.sls
base:
'roles:nginx':
- match: grain
- init.pkg
- init.limit
limit文件:cat /srv/salt/init/limit.sls
limit-conf-config:
file.managed:
- name: /tmp/limits.conf
- source: salt://init/files/limits.conf
- user: root
- group: root
- mod: 644
- name: /tmp/df.sh
- source: salt://init/files/df.sh
- user: root
- group: root
- mod: 644
files目录:ls /srv/salt/init/files
df.sh limits.conf
df.sh文件:cat /srv/salt/init/files/df.sh
#!/bin/bash
hostname
roster文件:cat /etc/salt/roster
test1.discuz.com:
host: test1.discuz.com
user: root
passwd: redhat
test2.discuz.com:
host: test2.discuz.com
user: root
passwd: redhat
tomcat1.discuz.com:
host: tomcat1.discuz.com
user: root
passwd: centos
tomcat2.discuz.com:
host: tomcat2.discuz.com
user: root
passwd: centos
传送文件到各主机:salt-ssh '*' state.sls init.limit
在各主机执行脚本:salt-ssh '*' cmd.run 'bash /tmp/df.sh'
生成roster脚本
roster.sh文件:cat /root/roster.sh
#!/bin/bash
>/etc/salt/roster
IFS=' '
cat /root/hosts | while read line
do
arr=($line)
echo ${arr[0]}":">>/etc/salt/roster
echo " host: "${arr[0]}>>/etc/salt/roster
echo " user: "${arr[1]}>>/etc/salt/roster
echo " passwd: "${arr[2]}>>/etc/salt/roster
done
hosts文件:cat /root/hosts
test1.discuz.com root redhat
test2.discuz.com root redhat
tomcat1.discuz.com root centos
tomcat2.discuz.com root centos
|
本文转自1321385590 51CTO博客,原文链接:http://blog.51cto.com/linux10000/1908001,如需转载请自行联系原作者