IT公司企业级批量分发\管理方案:

1.       中小企业最基本使用的SSHKEY密钥的方案。

2.       门户网站PUPPET(复杂),大型企业所需

3.       SALTSTACK批量管理(轻量)

运维原则:简单、易用、高效

 

使用SSHKEY方案实现免密码登录

免密码登录原理:

请求者拥有自己生成的公钥和私钥,公钥分发到各个客户端上,当请求者连接这些客户端的时候实现免密码登录。

 

密钥分类:DSARSA密钥

nfs-server输入ssh-keygen –t dsa,一路回车生成密钥对

群集架构批量分发管理方案介绍及案例说明(SSHKEY)_第1张图片

查看~/.ssh目录

Id_dsa是私钥 id_dsa.pub是公钥

clip_image002[4]

 

公钥复制:

如果数目不大直接用下面的命令就可满足,如果是上百台建议使用expect

ssh-copy-id -i id_dsa.pub  [email protected]

clip_image004[4]

默认会使用ssh的端口22去传输,如果有修改过可以添加-p 端口 去指定,例如:

clip_image005[4]

 

利用免密码可以实现一些如下功能示例

可以通过这个实现免密传输文件等执行一些脚本

clip_image006[4]

clip_image008[4]

 

通过循环执行相同的事情:

群集架构批量分发管理方案介绍及案例说明(SSHKEY)_第2张图片

 

群集架构批量分发管理方案介绍及案例说明(SSHKEY)_第3张图片

其中执行命令sh fenfa.sh hostshosts这个赋值到$1内去

clip_image012[4]

 

添加,如果没参数($#)报出错误提示。

若参数$#个数少于1,则提示clip_image013[4],其中$0代表脚本名称

群集架构批量分发管理方案介绍及案例说明(SSHKEY)_第4张图片

 

实现效果

clip_image015[4]

 

SSH批量分发与管理方案小结:

 

1.利用rootssh key验证

         优点:简单,易用

         缺点:安全差,同时无法禁止root远程连接这个功能。

         企业应用:80%的中小企业。

 

2.利用普通用户如oldgirl来做

         思路是先把文件拷贝到服务器用户家目录,然后sudo提权拷贝分发的文件到对应权限目录。

         优点:安全。无需停止root远程连接这个功能。

         缺点:配置麻烦

3.跟方案2一样,只是不用sudo,而是设置suid对固定命令授权

优点:相对安全

缺点:复杂,安全性较差。任何人都可以处理带有suid权限的命令。

 

追求简单,选1

追求安全,选2

相同功能相对高级的:puppetsaltstack

 

2方案实际操作:

#!/bin/sh

. /etc/init.d/functions

 

if [ $# -ne 2 ]

  then

   echo "USAGE:$0 LOCALFILE REMOTEFILE"

   exit 1

fi

for n in 21 25 32

do

  scp -P22 -r $1 [email protected].$n:~ &>/dev/null &&

  ssh -t [email protected].$n sudo rsync $1 $2 &>/dev/null

  if [ $? -eq 0 ]

   then

    action "fenfa $1 ok" /bin/true

   else

    action "fenfa $1 ok" /bin/false

fi

done