设为首页 收藏本站
查看: 1446|回复: 0

[经验分享] 运维自动化Saltstack之批量替换字符串

[复制链接]

尚未签到

发表于 2018-8-1 09:52:13 | 显示全部楼层 |阅读模式
  业务需求:
  单位需求:国内外有上百台linux服务器,如果没有taokey这个普通用户,需要统一添加并且设置密码。如果有此用户,需要更改密码。taokey用户如果没有root权限,就让他拥有root权限。
  搭建步骤
  一、搭建saltstack服务
  1.saltstack服务端master安装、配置。
[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服务。
[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软件包。
[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服务。
[root@vmware2 ~]# /etc/init.d/salt-minion restart  4.配置自动认证
  1)在master端,配置文件中,打开注释:
  auto_accept: True,设置为自动接受。
[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)运行测试下。
[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脚本,在虚拟机上调试成功。
[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 '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目录下。
[root@vmware1 ~]# mkdir -p /srv/salt  
[root@vmware1 ~]# cp add_user.sh /srv/salt/
  3.用salt执行add_user.sh脚本。
[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:
执行脚本之前的客户端:  
[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多台服务器了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544574-1-1.html 上篇帖子: ubuntu 12.04安装配置SaltStack 下篇帖子: 使用Docker和saltstack构建运维paas管理平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表