非交互式生成秘钥及实现批量管理

1、创建用户及密码(所有的机器都要执行)

useradd ydl

echo 123456|passwd --stdin ydl

id ydl

su - ydl

2、生成秘钥对

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa>/dev/null 2>&1

3、分发秘钥

ssh-copy-id -i .ssh/id_dsa.pub yaodunlin@192.168.1.43

单个自动分发秘钥:

[ydl@test-22 ~]$ cat fenfa_sshkey.exp

#!/usr/bin/expect

if { $argc != 2 } {

send_user "usage: expect fenfa_sshkey.exp file host\n"

exit

}

#define var

set file [lindex $argv 0]

set host [lindex $argv 1]

set password "123456"

#spawn scp /etc/hosts root@192.168.1.43:/etc/hosts

#spawn scp -P22 $file ydl@host:$dir

spawn ssh-copy-id -i $file "ydl@$host"

expect {

"yes/no" {send "yes\r";exp_continue}

"*password" {send "$password\r"}

}

expect eof

exit -onexit {

send_user "ydl say good bye to you!\n"

}

#script usage

#expect ydl-6.exp file host dir

#example

#expect fenfa_sshkey.exp file host dir

#expect fenfa_sshkey.exp ~/hosts 192.168.1.43:~

结果:expect fenfa_sshkey.exp .ssh/id_dsa.pub 192.168.1.186

批量分发脚本:

[ydl@test-22 ~]$ cat fenfa_sshkey.sh

#!/bin/sh

. /etc/init.d/functions

for ip in 43 186 192

do

expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 192.168.1.$ip >/dev/null 2>&1

if [ $? -eq 0 ];then

action "$ip" /bin/true

else

action "$ip" /bin/false

fi

done

一键自动化批量安装服务脚本

1.创建用户

useradd ydl123

echo 123456|passwd --stdin ydl123

id ydl123

2.sudo提权实现没有权限用户拷贝

配置sudoers

echo "ydl123 ALL= NOPASSWD:ALL ">>/etc/sudoers

visudo -c

su - ydl123

3.

脚本1、

[ydl123@test-22 ~]$ cat fenfa_sshkey.exp

#!/usr/bin/expect

if { $argc != 2 } {

send_user "usage: expect fenfa_sshkey.exp file host\n"

exit

}

#define var

set file [lindex $argv 0]

set host [lindex $argv 1]

set password "123456"

#spawn scp /etc/hosts root@192.168.1.43:/etc/hosts

#spawn scp -P22 $file ydl@host:$dir

spawn ssh-copy-id -i $file "ydl123@$host"

expect {

"yes/no" {send "yes\r";exp_continue}

"*password" {send "$password\r"}

}

expect eof

exit -onexit {

send_user "ydl say good bye to you!\n"

}

#script usage

#expect ydl-6.exp file host dir

#example

#expect fenfa_sshkey.exp file host dir

#expect fenfa_sshkey.exp ~/hosts 192.168.1.43:~

脚本2、

[ydl123@test-22 ~]$ cat auto_deploy.sh

#!/bin/sh

. /etc/init.d/functions

######################创建密钥#####################

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa>/dev/null 2>&1

if [ $? -eq 0 ];then

action "create dsa $ip" /bin/true

else

action "create dsa $ip" /bin/false

exit 1

fi

#######################分发密钥###################

for ip in 43 186 192

do

expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 192.168.1.$ip >/dev/null 2>&1

if [ $? -eq 0 ];then

action "$ip" /bin/true

else

action "$ip" /bin/false

fi

done

######################dis fenfa scripts###########

for n in 43 186 192

do

scp -P 22 -rp ~/scripts ydl123@192.168.1.$n:~

done

###################install sevice################

for m in 43 186 192

do

ssh -t -p 22 ydl123@192.168.1.$m sudo /bin/bash ~/scripts/install.sh

done

验证成功!

shell一键自动化批量安装服务相关推荐

  1. 一键自动化批量安装服务脚本

    一键自动化给多台服务器安装vsftpd服务 1.ip规划,这里根据自己ip灵活调整 管理机 172.16.1.61 服务器 172.16.1.31.172.16.1.41 2.管理机切换到root用户 ...

  2. [记录]Shell并发模式批量安装saltstack的脚本

    SaltStack+Shell: salt-master的配置:#cat /etc/salt/masteruser: rootauto_accept: Truesalt-minion的配置(支持多ma ...

  3. Linux系列——自动化批量安装软件

    前言 使用脚本为集群自动化安装软件,能给开发者省很多时间. 准备工作: 带有安装包的服务器需要有httpd.scp命令(也可以写到脚本里面) yum install -y httpd openssh- ...

  4. centos环境自动化批量安装软件脚本

    自动化安装jdk软件部署脚本 准备工作: 1.在执行脚本的服务器上生成免密码公钥: 安装expect命令 yum install -y expect ssh-keygen 三次回车 2.将jdk-7u ...

  5. Cobbler自动化批量安装Linux操作系统

    安装Cobbler 环境: 上传镜像 上传系统安装镜像文件CentOS-7-x86_64-Minimal-1908.iso到/zoom, 关闭防火墙 systemctl stop firewalld ...

  6. linux自动化安装oracle,ftp的客户端软件 Linux环境一键自动化安装oracle软件的构想(附she...

    一.自动化批量安装ORACLE软件的构想 1.1构想从哪里来? 熟悉PXE+KICKSTART一键批量安装Liunx操作系统的童鞋都知道,该方式可实现快速定制,规范化,自动化的无人值守安装.基于此方式 ...

  7. 如何通过PXE实现一键自动化安装操作系统

    PXE(preboot execute environment)预启动执行环境,主要实现网络引导技术. 下来我们来看看如何配置: 安装需要的组件: yum install dhcp tftp-serv ...

  8. Windows Server 2008 R2使用WDS服务实现批量安装操作系统演示

    昨天在51cto朋友圈看到有关WDS部署的演示,我参考上面的一步步来,发现诸多的问题的,其中在如何捕获封装好的windows server 2003时候遇到过一个问题,那就是制作winpe的启动镜像时 ...

  9. 编写shell脚本实现自动化搭建安装LNMP平台全过程配置详解

    注意:如果是输入的是字母的或者是输入等于0时,则会出现以下两种情况!!! 查看端口: 进到Nginx根目录查看创建好的测试网页: 注意:关闭防火墙或者设置防火墙规则!!! 访问Nginx网页: 访问P ...

最新文章

  1. layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)
  2. 30天敏捷结果(5):使用热图标识出重要事情
  3. git push github SSL报错处理
  4. c++ vector clear()清除容器中所有数据
  5. C#中全局作用域的常量、字段、属性、方法的定义与使用
  6. ctype.h(cctype) 头文件函数大全
  7. 关于半马尔可夫(semi-markov)的一个形象解释
  8. CSU计算机图形学复习
  9. postgre帮助文档。
  10. 【分享】VNR翻译日语游戏汉化简易图解教材
  11. 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
  12. 批量打印Word文档并记录(一)
  13. java静态链表_Java数据结构-线性表之静态链表
  14. android接口和type c对比,USB Type-C究竟比3.5mm音频接口好在哪里?
  15. IDEA web.xml版本过低怎么生成新的
  16. 风儿轻轻地吹,沙儿轻轻地飘
  17. 美味冰皮月饼的做法 月饼的做法
  18. 最新宝塔自助建站系统8.0源码
  19. 图像处理那张熟悉的面孔——Lena
  20. 2022电大国家开放大学网上形考任务-贸易实务(山东)非免费(非答案)

热门文章

  1. 基于社交网络搜索算法的WSN覆盖优化和工程优化
  2. 如何利用训练好的神经网络进行预测
  3. 实践一年之久,vivo 如何基于 APISIX 进行业务基础架构的演进
  4. 全球与中国航空资产管理市场深度研究分析报告
  5. 潮起潮落,自助餐还是被“吃”垮了
  6. js为什么设置为单线程,怎么实现多线程
  7. 成品app直播源码,服务端与客户端传输视频文件
  8. 学计算机学费一万多吗,计算机专业的学费是多少
  9. C语言字符集中可显示字符,C++_C语言转义字符实例详解,在字符集中,有一类字符具有 - phpStudy...
  10. 基于STM32C8T6的智能蓝牙小车(毕业设计)