1. 程式人生 > 實用技巧 >linux免金鑰批量安裝jdk

linux免金鑰批量安裝jdk

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