一、搭建saltstack服务
1.saltstack服务端master安装、配置。
1
2
3
4
5
6
|
[root@vmware1 ~]
# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@vmware1 ~]
# yum install -y salt-master
[root@vmware1 ~]
# /etc/init.d/salt-master start
[root@vmware1 ~]
# chkconfig salt-master on
[root@vmware1 ~]
# chkconfig --list salt-master
salt-master 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
2.修改默认的/etc/salt/master配置文件,然后重启salt-master服务。
1
2
3
4
5
6
7
8
|
[root@vmware1 ~]
# vim /etc/salt/master
interface: 10.0.1.173
#服务端master的IP地址
publish_port: 4505
#监听salt的消息发布系统端口
ret_port: 4506
#salt客户端与服务端通信的端口
[root@vmware1 ~]
# /etc/init.d/salt-master restart
必须保证这2个端口可以正常通信,如果开启iptables防火墙,需要添加以下2条规则:
-A INPUT -m state --state new -m tcp -p tcp --dport4505 -j ACCEPT
-A INPUT -m state --state new -m tcp -p tcp --dport4506 -j ACCEPT
|
3. saltstack的minion端安装、配置。
1)安装minion软件包。
1
2
3
4
5
|
[root@vmware2 ~]
# yum install -y salt-minion
[root@vmware2 ~]
# vim /etc/salt/minion
master: 10.0.1.173
#填写master端的IP地址
id
: vmware2
#minion客户端主机名(标识字符)
master_port: 4506
#开启salt客户端与服务端通信的端口
|
2)启动或者重启minion服务。
1
|
[root@vmware2 ~]
# /etc/init.d/salt-minion restart
|
4.配置自动认证
1)在master端,配置文件中,打开注释:
auto_accept: True,设置为自动接受。
1
2
3
4
5
6
7
8
9
10
|
[root@vmware1 ~]
# vim /etc/salt/master
auto_accept: True
重启下salt-master服务。
[root@vmware1 ~]
# /etc/init.d/salt-master restart
[root@vmware1 ~]
# salt-key -L
Accepted Keys:
vmware1
vmware2
Unaccepted Keys:
Rejected Keys:
|
2)运行测试下。
1
2
3
4
5
6
|
[root@vmware1 ~]
# salt '*' test.ping
vmware2:
True
[root@vmware1 ~]
# salt '*' cmd.run 'date'
vmware2:
Fri Aug 22 12:05:24 CST 2014
|
二、根据需求写出shell脚本,然后放到master上执行,查看效果。
1.写出shell脚本,在虚拟机上调试成功。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@vmware1 ~]
# cat add_user.sh
#!/bin/bash
PS=`
awk
-F
":"
'/taokey/ {print $2}'
/etc/shadow
`
if
id
taokey &>
/dev/null
2>&1
then
sed
-i
'/taokey/s#'
$PS
'#abcd#g'
/etc/shadow
else
useradd
taokey
sed
-i
'/taokey/s/!!/abcd/'
g
/etc/shadow
fi
if
[ -n `
which
sudo
` ];
then
echo
'sudoexist'
&>
/dev/null
2>&1
else
/usr/bin/yuminstall
-y
sudo
echo
"taokey ALL=(ALL) ALL"
>>
/etc/sudoers
fi
Num=`
grep
taokey
/etc/sudoers
|
wc
-l`
if
[
"$Num"
=
"1"
]
then
echo
"user is exist."
>
/dev/null
else
echo
"taokey ALL=(ALL) ALL"
>>
/etc/sudoers
fi
|
2.创建/srv/salt目录,把调试好的shell脚本add_user.sh放到/srv/salt目录下。
1
2
|
[root@vmware1 ~]
# mkdir -p /srv/salt
[root@vmware1 ~]
# cp add_user.sh /srv/salt/
|
3.用salt执行add_user.sh脚本。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@vmware1 ~]
# cd /srv/salt/
[root@vmware1 salt]
# ls
add_user.sh
[root@vmware1 salt]
# salt '*' cmd.scriptsalt://add_user.sh
vmware2:
----------
pid:
4960
retcode:
0
stderr:
stdout:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
执行脚本之前的客户端:
[root@vmware2 ~]
# cat /etc/shadow | grep taokey
[root@vmware2 ~]
#
执行之后的客户端:
[root@vmware2 ~]
# cat /etc/shadow | grep taokey
taokey:abcd:16304:0:99999:7:::
[root@vmware2 ~]
# which sudo
/usr/bin/sudo
[root@vmware2 ~]
# tail /etc/sudoers
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
## Allows members of the users group to shutdown thissystem
# %users localhost=/sbin/shutdown -h now
## Read drop-in files from /etc/sudoers.d (the # heredoes not mean a comment)
#includedir /etc/sudoers.d
taokey ALL=(ALL) ALL
|
4.在虚拟机上操作之后,开始线上操作。
这时候,我就可以批量操作100多台服务器了。