(32)自动化部署脚本

要求: 编写自动化脚本,在所有机器上安装jdk。其中一台机器作为拥有jdk的yum仓库服务器,其他的机器都要从该yum服务器中下载jdk并安装。

自动化脚本分为两个文件,boot.sh和install.sh。

boot.sh:运行在提供yum仓库的机器上,它会配置本机器到其余机器的免密ssh登录,然后发送install.sh脚本到各台机器上,并在其他机器上启动install.sh脚本。

install.sh:首先用yum安装wget(yum install -y wget),然后从httpd服务器上下载jdk(wget http://mini4/soft/jdk.tar.gz),最后解压和修改配置文件

前提:每台机器都要有scp命令

脚本的详细代码:

boot.sh:

BASE_SERVER=172.16.203.100

//配置ssh免密登录
auto_ssh_copy_id() {
expect -c "set timeout -1;
spawn ssh-copy-id $1; # 执行命令
expect {
*(yes/no)* {send -- yes ;exp_continue;} # 如果系统提示带有yes/no,就输入yes然后回车
*assword:* {send -- $2 ;exp_continue;} # 如果系统提示带有assword,就输入PASSWORD然后回车
eof {exit 0;} # 不再提示,就退出
}";
}
# set timeout -1; : 无限制地等待系统的响应提示,不会超时

ssh_copy_id_to_all() {
for SERVER in $SERVERS
do
auto_ssh_copy_id $SERVER $PASSWORD
# 调用auto_ssh_copy_id函数,传入两个参数SERVER和PASSWORD
done
}

ssh_copy_id_to_all


for SERVER in $SERVERS
do
scp install.sh root@$SERVER:/root # 发送install.sh脚本给其他机器
ssh root@$SERVER /root/install.sh # 在其他机器上启动脚本
done

install.sh:

#!/bin/bash

BASE_SERVER=mini4  # 提供yum仓库的机器
yum install -y wget # 安装wget
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz # 下载jdk
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local # 解压
cat >> /etc/profile << EOF # 修改配置文件
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin
EOF

# cat 文件EOF...EOF,追加到/etc/profile文件里去
# >>输出重定向 <<输入重定向

详细操作步骤:

cd /var/www/html/

mkdir soft

cp ~/jdk-7u45-linux-x64.tar.gz ./soft/

chmod +x install.sh boot.sh  # 添加可执行权限

./boot.sh

原文地址:https://www.cnblogs.com/paradis/p/11380814.html