当前位置:首页>微思动态>详情
全国热线电话 400-881-4699

在线留言

【干货】批量管理自动化运维100台小规模服务器

发布作者:微思网络   发布时间:2017-09-19   浏览量:0




一、脚本背景介绍

    在企业中经常会用遇到小规模的集群服务器,在日常的管理中经常会遇到重复性的动作,如更新备上百台服务器上的ssh公钥、备份上百台服务器上的/etc/passwd配置文件等等,通常情况下采用专用自动化运维工具assibe,若因资源或技术因素没有安装此类服务,此时可以通过脚本实现小规模服务器集群的自动化运维,记住只要是重复3次以上的动作,在自动化运维的时代里必须采用自动化手法进行运维管理。

二、脚本制作技术需求

   2.1 SSH免密码登陆认证

    服务器的远程管理认证通常有两种方式认证,

    第一种采用对称加密算法的账号密码登录认证,对称加密即加密和解密使用同一个密钥,最常见的算法有DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard)等,优势为加密和解密使用同一个密码,效率高,缺点是密钥交换无安全保障,数据来源无法确认。

    第二种采用非对称加密算法,利用密钥完成认证,非对称加密算法通常有RSA、DSA,其主要作用是生成公钥和私钥,公钥加密的数据只能私钥解密,私钥加密的数据只能是公钥解密(数字签名),通过私钥能算出公钥,但通过公钥无法推算出私钥,具体原理见如下:

     PSCP.PSSH命令详解


    pscp.pssh功能是将本地文件批量复制到远程主机,其语法结构为:

    pscp [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] local remote

    选项用法pssh的选项与pssh保持一致,scp选项如下,举例说明:

命令

选项

含义


  Pscp-pssh

            -v

显示复制过程

            -a

复制过程中保留常规属性

            -r

递归复制目录

[root@centos7 ~]#pscp.pssh -H 192.168.100.128 /root/test/curl.sh /app/ 

[1] 03:22:05 [SUCCESS] 192.168.100.128                      #将本地curl.sh 复制到/app/目录

[root@centos7 ~]#pscp.pssh -h host.txt  /root/test/curl.sh /app/ 

[1] 03:22:05 [SUCCESS] 192.168.100.128                      #将本地curl.sh 批量复制到/app/目录

[root@centos7 ~]#pscp.pssh -H 192.168.100.128  /root/test/mcurl.sh /root/test/mysql.sh /app/
[1] 03:39:17 [SUCCESS] 192.168.100.128                      #将本地多个文件批量复制到/app/目录

[root@centos7 ~]#pscp.pssh -H 192.168.100.128  -r /root/test/ /app/
[1] 03:40:41 [SUCCESS] 192.168.100.128                      #将本地目录批量复制到/app/目录

    PSLURP.PSSH命令详解

   pslurp.pssh功能是将远程主机的文件批量复制到本地,在复制过程中注意

   pslurp [-vAr] [-h  hosts_file] [-H [user@]host[:port]] [-l user] [-p par][-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] [-L localdir] remote local(本地名)

命令

选项

含义


Pslurp-pssh

            -L

指定从远程主机下载文件存储的目录,local是下载到本地后的名称,语法结构中必须跟local

            -a

指定主机,-H “root@host1 root@host2 ”

            -r

将每个主机标准输出输送到当前终端

[root@centos7 ~]#pslurp -H 192.168.100.128 -L /app/ -r /app/test test(存储到本地后的名称)
[1] 04:14:13 [SUCCESS] 192.168.100.128                      #批量下载服务器中的文档到本地,-L指定下                                                             载目录,local存储到本地的名称
[root@centos7 ~]#pslurp -H 192.168.100.128 -L /app/ /app/mcurl.sh mcurl.sh
[1] 04:13:13 [SUCCESS] 192.168.100.128                      #批量下载服务器中文档到本地
[root@centos7 ~]#pslurp -H 192.168.100.128 -L /app/ /etc/passwd pawd
[1] 04:23:39 [SUCCESS] 192.168.100.128      #批量下载目标服务器的passwd文件,下载到本地更名为pawd

三、脚本功能及实现过程

   3.1 脚本运行环境

    服务器集群环境或百台左右服务器的管理,如若太多服务器得借助专业运维工具assible。

   3.2 脚本功能介绍

    脚本在自动化运维通常实现如下功能:

      (1)批量执行命令,并将结果返回终端或日志文件;

      (2)文件批量复制,将本地的文件批量上传给远程主机;

    (3)文件批量下载,将远程主机的文件批量下载至本地;

    3.3 脚本编写思路

     自动化运维脚本的编写思路:

     第一步:生成key,利用Expect将公钥分发给服务器;

     第二步:利用pscp.pssh向远程主机(主机列表文件)推送脚本

     第三步:利用pssh远程主机发送执行脚本指令

     第四步:利用pslurp.pssh回收脚本及日志文件,针对性进行处理

      当然也可以通过厦门ccna培训哪家好批量执行命令进程处理,但是通过批量执行命令处理相对效率较慢,因此推荐使用脚本处理业务,如上为举例说明的一个案例,其他业务具体情况可以通过替换此案例中的脚本来实现各位运维界兄弟们的需求。

作者:每天进步一点点

来源:http://wbxue.blog.51cto.com/11831715/1964165


返回顶部