一、目的:可以做软件的自动部署(例子:从一台机器上运行脚本,可以在n台主机上安装tomcat)
二、原理分析
- 在一台机器上安装web服务器:httpd
- 在机器的这个目录下放置jdk包: /html/soft/jdk.tar.gz
- 在这台主机上增加boot.sh
- boot.sh中 配置免密ssh登录 发送一个install.sh脚本到各台机器上,并启动这个脚本
三、条件:
- 虚拟机必须可以联网 还不能联网的请转到:https://mp.csdn.net/postedit/101547712
- scp命令可以使用
- ll /user/local/ ----查看是否有jdk,有就删掉 rm -rf /user/local/ jdk的命令
- 配置免密登陆
四、脚本及解析
- 把jdk压缩包 (jdk-8u221-linux-x64.tar.gz)放到 /var/www/html/soft 目录下(没有就新建下哈)
- 新建脚本boot.sh
- 新建脚本install.sh
- 给执行权限 chmod +x install.sh
五、脚本boot.sh
#! /bin/bash
SERVERS="cbossremote cust"
PASSWORD=******
BASE_SERVER=20.26.1.15
auto_ssh_copy_id() {
expect -c "set timeout -1;
spawn ssh-copy-id $1;
expect {
*(yes/no)* {send -- yes\r;exp_continue;}
*password:* {send -- $2\r;exp_continue;}
eof {exit 0;}
}";
}
ssh_copy_id_to_all() {
for SERVER in $SERVERS
do
auto_ssh_copy_id $SERVER $PASSWORD
done
}
ssh_copy_id_to_all
for SERVER in $SERVERS
do
scp install.sh root@$SERVER:/root/bin
ssh root@$SERVER /root/bin/install.sh
done
六、install.sh
#!/bin/bash
BASE_SERVER=20.26.1.14
yum install -y wget
wget $BASE_SERVER/soft/jdk-8u221-linux-x64.tar.gz
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /user/local
cat >> /etc/profile <<EOF
export JAVAHOME=/user/local/jdk1.7.0_45
export PATH=\$PATH:\$JAVA_HOME/bin
EOF