运维自动化Saltstack之批量替换字符串

一、搭建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. saltstackminion端安装、配置。

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多台服务器了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值