集群批量安装jdk

几十台机器对jdk嗷嗷待装,不想一个个装,写个脚本批量安装。
前提:root下满足各节点ssh免密码通信,或者自定义用户脚本里面加个sudo,并且在sudoer里面允许免密码。
1. 在node1节点上下载最新官方rpm包,地址
2. wget 这个地址无效,只会下到当前网页,因为网页有个接受协议的cookie认证,所以加块饼干吧。

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"  url

把url 改成你要下的地址,我这里是http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm
3. 安装好后新建目录,/usr/lib/jvm/installJDK,在目录里面写个脚本

vim installJDK.sh>
#!/bin/bash
#0. rebuild rpm
echo "rebuild rpm"
rpm --rebuilddb
echo "finish rebuild"

# 1. remove openjdk if exists.
for i in $(rpm -qa | grep jdk | grep -v grep)
do
  echo "Deleting rpm -> "$i
  sudo rpm -e --nodeps $i
done

if [[ ! -z $(rpm -qa | grep jdk | grep -v grep) ]];
then
  echo "-->Failed to remove the defult Jdk."
else
#2.install jdk
 rpm -ivh --nodeps jdk-8u91-linux-x64.rpm
# rm -f jdk-8u91-linux-x64.rpm
echo "success!"
fi

并把下载rpm包放到这个目录下
4. 安装

 ./installJDK.sh

安装文件在/usr/java/jdk1.8.0_91里,bin文件目录已经软链接到$PATH目录里面了,所以直接可以 java -verson 、 javac 、 javadoc 了
4. 远程拷贝
当前目录下新建文件

vim setup.sh>
#!/bin/bash
#建立主机名数组hosts=('node2' 'node3' 'node4' 'node5'...)
len=18  #要拷贝的节点数(node2~node18)
hostName='node'  #common_prefix
hosts='' #hosts数组
for((i=2;i<=len;i++ ))
do
    hosts="${hosts}${hostName}${i} "
done
hosts=(${hosts})
#远程拷贝
for((i=0;i<${#hosts[*]};i=i+1))
do
    echo "正在复制到${hosts[i]} 节点"
    scp -r /usr/lib/jvm/installJDK  root@${hosts[i]}:/usr/lib/jvm/
    echo "正在安装到${hosts[i]} 节点"
    ssh root@${hosts[i]} "/usr/lib/jvm/installJDK/installJDK.sh"
done

完事~

你可能感兴趣的:(java基础)