运维自动化Saltstack之批量替换字符串
业务需求:单位需求:国内外有上百台linux服务器,如果没有taokey这个普通用户,需要统一添加并且设置密码。如果有此用户,需要更改密码。taokey用户如果没有root权限,就让他拥有root权限。
搭建步骤
一、搭建saltstack服务
1.saltstack服务端master安装、配置。
# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install -y salt-master
# /etc/init.d/salt-master start
# chkconfig salt-master on
# 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服务。
# vim /etc/salt/master
interface: 10.0.1.173 #服务端master的IP地址
publish_port: 4505 #监听salt的消息发布系统端口
ret_port: 4506 #salt客户端与服务端通信的端口
# /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软件包。
# yum install -y salt-minion
# vim /etc/salt/minion
master: 10.0.1.173 #填写master端的IP地址
id: vmware2 #minion客户端主机名(标识字符)
master_port: 4506 #开启salt客户端与服务端通信的端口
2)启动或者重启minion服务。
# /etc/init.d/salt-minion restart 4.配置自动认证
1)在master端,配置文件中,打开注释:
auto_accept: True,设置为自动接受。
# vim /etc/salt/master
auto_accept: True
重启下salt-master服务。
# /etc/init.d/salt-master restart
# salt-key -L
Accepted Keys:
vmware1
vmware2
Unaccepted Keys:
Rejected Keys:
2)运行测试下。
# salt '*' test.ping
vmware2:
True
# salt '*' cmd.run 'date'
vmware2:
Fri Aug 22 12:05:24 CST 2014
二、根据需求写出shell脚本,然后放到master上执行,查看效果。
1.写出shell脚本,在虚拟机上调试成功。
# 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 'sudo exist' &>/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目录下。
# mkdir -p /srv/salt
# cp add_user.sh /srv/salt/
3.用salt执行add_user.sh脚本。
# cd /srv/salt/
# ls
add_user.sh
# salt '*' cmd.scriptsalt://add_user.sh
vmware2:
----------
pid:
4960
retcode:
0
stderr:
stdout:
执行脚本之前的客户端:
# cat /etc/shadow | grep taokey
#
执行之后的客户端:
# cat /etc/shadow | grep taokey
taokey:abcd:16304:0:99999:7:::
# which sudo
/usr/bin/sudo
# 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多台服务器了。
页:
[1]