shell一键自动化批量安装服务
非交互式生成秘钥及实现批量管理
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一键自动化批量安装服务相关推荐
- 一键自动化批量安装服务脚本
一键自动化给多台服务器安装vsftpd服务 1.ip规划,这里根据自己ip灵活调整 管理机 172.16.1.61 服务器 172.16.1.31.172.16.1.41 2.管理机切换到root用户 ...
- [记录]Shell并发模式批量安装saltstack的脚本
SaltStack+Shell: salt-master的配置:#cat /etc/salt/masteruser: rootauto_accept: Truesalt-minion的配置(支持多ma ...
- Linux系列——自动化批量安装软件
前言 使用脚本为集群自动化安装软件,能给开发者省很多时间. 准备工作: 带有安装包的服务器需要有httpd.scp命令(也可以写到脚本里面) yum install -y httpd openssh- ...
- centos环境自动化批量安装软件脚本
自动化安装jdk软件部署脚本 准备工作: 1.在执行脚本的服务器上生成免密码公钥: 安装expect命令 yum install -y expect ssh-keygen 三次回车 2.将jdk-7u ...
- Cobbler自动化批量安装Linux操作系统
安装Cobbler 环境: 上传镜像 上传系统安装镜像文件CentOS-7-x86_64-Minimal-1908.iso到/zoom, 关闭防火墙 systemctl stop firewalld ...
- linux自动化安装oracle,ftp的客户端软件 Linux环境一键自动化安装oracle软件的构想(附she...
一.自动化批量安装ORACLE软件的构想 1.1构想从哪里来? 熟悉PXE+KICKSTART一键批量安装Liunx操作系统的童鞋都知道,该方式可实现快速定制,规范化,自动化的无人值守安装.基于此方式 ...
- 如何通过PXE实现一键自动化安装操作系统
PXE(preboot execute environment)预启动执行环境,主要实现网络引导技术. 下来我们来看看如何配置: 安装需要的组件: yum install dhcp tftp-serv ...
- Windows Server 2008 R2使用WDS服务实现批量安装操作系统演示
昨天在51cto朋友圈看到有关WDS部署的演示,我参考上面的一步步来,发现诸多的问题的,其中在如何捕获封装好的windows server 2003时候遇到过一个问题,那就是制作winpe的启动镜像时 ...
- 编写shell脚本实现自动化搭建安装LNMP平台全过程配置详解
注意:如果是输入的是字母的或者是输入等于0时,则会出现以下两种情况!!! 查看端口: 进到Nginx根目录查看创建好的测试网页: 注意:关闭防火墙或者设置防火墙规则!!! 访问Nginx网页: 访问P ...
最新文章
- layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)
- 30天敏捷结果(5):使用热图标识出重要事情
- git push github SSL报错处理
- c++ vector clear()清除容器中所有数据
- C#中全局作用域的常量、字段、属性、方法的定义与使用
- ctype.h(cctype) 头文件函数大全
- 关于半马尔可夫(semi-markov)的一个形象解释
- CSU计算机图形学复习
- postgre帮助文档。
- 【分享】VNR翻译日语游戏汉化简易图解教材
- 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
- 批量打印Word文档并记录(一)
- java静态链表_Java数据结构-线性表之静态链表
- android接口和type c对比,USB Type-C究竟比3.5mm音频接口好在哪里?
- IDEA web.xml版本过低怎么生成新的
- 风儿轻轻地吹,沙儿轻轻地飘
- 美味冰皮月饼的做法 月饼的做法
- 最新宝塔自助建站系统8.0源码
- 图像处理那张熟悉的面孔——Lena
- 2022电大国家开放大学网上形考任务-贸易实务(山东)非免费(非答案)
热门文章
- 基于社交网络搜索算法的WSN覆盖优化和工程优化
- 如何利用训练好的神经网络进行预测
- 实践一年之久,vivo 如何基于 APISIX 进行业务基础架构的演进
- 全球与中国航空资产管理市场深度研究分析报告
- 潮起潮落,自助餐还是被“吃”垮了
- js为什么设置为单线程,怎么实现多线程
- 成品app直播源码,服务端与客户端传输视频文件
- 学计算机学费一万多吗,计算机专业的学费是多少
- C语言字符集中可显示字符,C++_C语言转义字符实例详解,在字符集中,有一类字符具有 - phpStudy...
- 基于STM32C8T6的智能蓝牙小车(毕业设计)