linux免金鑰批量安裝jdk
阿新 • • 發佈:2020-08-26
linux免金鑰批量安裝jdk
-
安裝服務
yum -y install httpd
-
首先我們需要製作一臺伺服器,並把軟體包放在我們的伺服器上,需要進入 /var/www/html資料夾
cd /var/www/html
-
建立一個資料夾soft
mkdir soft
-
把事先下載好的軟體包放在這個目錄下(記住,這個過程所有機器需要訪問80埠,所以最好先把防火牆關掉),關閉中沒有iptables需要利用yum下載
-
關閉防火牆得步驟
service iptables stop
-
這裡我得主機是192.168.42.132,得到結果
-
實驗主機hostname=192.168.43.132 ,使用者:root,在主機上使用ssh-keygen生成公鑰和私鑰對。(一直按回車就可以)
ssh-keygen -t rsa
-
建立需要需要安裝得伺服器名字和密碼得txt檔案,xxx.txt
192.168.42.131 123 192.168.42.132 12345 ..........
-
撰寫installjdk.sh指令碼
while read line do username=`echo $line | cut -f1 -d' '` password=`echo $line | cut -f2 -d' '` echo $username $password expect -c "set timeout -1; spawn ssh-copy-id $username; expect { *(yes/no)* {send -- yes\n;exp_continue;} *password* {send -- $password\n;exp_continue;} eof {exit 0;} }"; scp install.sh root@${username}:/home ssh -n root@$username /home/install.sh done <user.txt
- 這裡使用重定向,將檔案內容輸入while命名,while命令每次使用read從輸入中讀取一行資料,如果在while中呼叫了ssh命令,那麼ssh就會把當前輸入中得所有資料讀走,以至於下次迴圈得時候,read讀到得內容為空,所以要加ssh -n 用/dev/null來當ssh得輸入,阻止ssh讀取本地得標準輸入內容
-
撰寫jdk安裝變數環境指令碼 install.sh
#!/bin/bash #將jdk安裝(1、內網下載 2、公網下載 3、scp傳送) yum install -y wget #注意這裡的埠號,自己的是多少就寫多少,我的是9999 wget http://192.168.42.132:9999/noarch/jdk-8u231-linux-x64.tar.gz tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local yum -y remove java* cat >> /etc/profile << EOF export JAVA_HOME=/usr/local/jdk1.8.0_231 export PATH=\$PATH:\$JAVA_HOME/bin: EOF source /etc/profile
-
把這個兩個指令碼考到實驗主機上,並賦予執行許可權,進行執行
chmod a+x ./installjdk.sh install.sh ./installjdk.sh
-
如果出現報錯
-
防火牆沒有關閉
-
機器沒有安裝scp,安裝scp
yum install -y openssh-clients
-
機器沒有安裝expect,安裝expect
yum install -y expect
-
-
安裝結果
-
對安裝結果得檢查
java -version
-