shell脚本给N台机器安装jdk

如何通过shell脚本给N台机器安装jdk(其他软件类似)

要给其他机器安装软件,首先得先连接机器,可通过ssh-copy-id免密登陆,登陆会有机器密码输入等提示,通过expect函数实现人机交互。连接后通过scp命令复制本机文件到连接的机器,可抽象出另一个安装jdk并配置环境变量的shell脚本到连接的机器并执行。本机安装httpd服务,其他机器安装wget命令服务,本机通过http服务发布一个jdk安装包,其他机器通过wget下载本机jdk安装包,然后解压,并配置环境变量。代码如下:

start.sh

#!/bin/bash
server="192.168.21.51 192.168.21.52"
password=123456
base_server = 192.168.21.50

auto_ssh_copy_id(){
expect -c "set timeout -1;
spawn ssh-copy-id $1;
expect{
*(yes/no)* {send -- yes\r;exp_continue}
*assword:* {send -- $2\r;exp_continue}
eof {exit 0;}
}";
}

ssh_copy_id_to_all(){
for servcer in $servers
do
auto_ssh_copy_id $server $password
done
}


ssh_copy_id_to_all


for server in $servcers
do
scp install.sh root@$server:/root
ssh root@$server /root/install.sh
done

install.sh

#!/bin/bash
BASE_SERVER=192.168.21.51
yum install -y wget
wget $BASE_SERVER/soft/jdk8.0.2.tar.gz
tar -zxvf jdk8.0.2.tar.gz -C /usr/local
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk.8.0.2
export PATH=\$PATH:\$JAVA_HOME/bin

猜你喜欢

转载自blog.csdn.net/qq_37001674/article/details/78887396