博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量分发ssh公钥证书
阅读量:6635 次
发布时间:2019-06-25

本文共 1612 字,大约阅读时间需要 5 分钟。

hot3.png

脚本代码

  • 主程序,init_host.sh 功能,读取 /root/hostlist 列表内的IP,密码,主机名,批量执行如下设置;
  • 将脚本,配置文件拷贝远端主机指定位置
  • 执行远端主机/root/remote_operate.sh脚本
  • 设置主机名,安装salt-minion
#!/bin/bashPUB_KEY="/root/.ssh/authorized_keys"SALT_CONF="/etc/apt/sources.list.d/saltstack.list"HOST_LIST="/root/hostlist"function run_remote_cmd(){local cmd=$1expect -c "spawn ${cmd}expect {                \"*yes/no*\" {send \"yes\r\"; exp_continue}                \"*password*\" {send \"$password\r\"; exp_continue}                \"*Password*\" {send \"$password\r\";}        }"   }for i in $(cat $HOST_LIST)do        ip=$(echo "$i"|cut -f1 -d":")        password=$(echo "$i"|cut -f2 -d":")        host_name=$(echo "$i"|cut -f3 -d":")        run_remote_cmd "scp ${PUB_KEY}  /root/remote_operate.sh  root@${ip}:/tmp/"        run_remote_cmd "scp ${SALT_CONF} root@${ip}:/etc/apt/sources.list.d/saltstack.list"        run_remote_cmd "ssh root@${ip} echo ${host_name} > /etc/hostname"        run_remote_cmd "ssh root@${ip} /tmp/remote_operate.sh"        run_remote_cmd "ssh root@${ip} apt-get update && apt-get install salt-minion --force-yes -y"        done
  • /root/remote_operate.sh 分发给远端机器的脚本,用于设置ssh_auth
#!/bin/bashsource ~/.bashrcif [ ! -d /root/.ssh ];thenmkdir /root/.sshfiif [ -f /root/.ssh/  ];then    cat /tmp/authorized_keys >> /root/.ssh/authorized_keyselse    cp /tmp/authorized_keys /root/.ssh/fi
  • /root/hostlist
10.2.0.111:123Abcd:ubuntu-server-00110.2.0.112:123Abcd:ubuntu-server-002

解析一下要点

1 run_remote_cmd() 函数调用了 expect -c "cmd ..." 相当于在shell脚本中插入一段 expect执行代码;

2 exp_continue, 可以不断循环匹配,详细见expect 的匹配循环

参考

1 2

转载于:https://my.oschina.net/u/877567/blog/189764

你可能感兴趣的文章
归并排序
查看>>
自己实现的简易的knn算法
查看>>
连载22:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
查看>>
手机上怎么实现PDF文件转换成Excel表格
查看>>
ServiceComb实战
查看>>
0011-如何在Hive & Impala中使用UDF
查看>>
索引●引路
查看>>
Excel表头怎么设计?这里有超全面的表头设计方法!一分钟可学会
查看>>
MySQL安装
查看>>
程序员写了一段注释, 第二天惨被公司开除, 公司巧妙回怼
查看>>
普通二本毕业,混过百度,现任美团资深架构师,给IT后辈一点建议
查看>>
JAVA还是C?
查看>>
Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
查看>>
@Resource annotation is not supported on static fields
查看>>
JAVA面试准备(java基础部分2)
查看>>
快速启动zabbix监控服务集群
查看>>
模仿,anjularjs 双向绑定 ,纯javascript实现
查看>>
自制监控系统
查看>>
window 2008 下 安装域管理并且控制qq和usb
查看>>
WCF SOA服务应用
查看>>