1. 程式人生 > >Linux:自動化部署指令碼,給每一臺主機裝上JDK,且配好環境變數

Linux:自動化部署指令碼,給每一臺主機裝上JDK,且配好環境變數

centos6.7

當我們有很多臺主機,想在每臺機器上都安裝一樣的某些軟體,當然,一臺機器一臺機器安裝也是可以的,但是如果有一鍵安裝所有機器上的軟體那是不是很激動人心呢!

首先我們需要製作一臺伺服器,並把軟體包放在我們的伺服器上

首先進入 /var/www/html資料夾

cd /var/www/html
建立一個資料夾soft
mkdir soft
把事先下載好的軟體包放在這個目錄下(記住,這個過程所有機器需要訪問80埠,所以最好先把防火牆關掉)

關掉防火牆

service iptables stop
此時在主機瀏覽器上輸入主機IP/soft應該就可以顯示你上傳的軟體,如下圖:


這裡我的主機IP是192.168.6.128,上傳的檔案是jdk,我的目的也是給每一臺機器安裝jdk

配好伺服器後,我們就可以寫shell指令碼了

boot.sh

#!/bin/bash

SERVERS="192.168.6.129 192.168.6.130" #這是我需要安裝軟體的兩臺機器的ip
PASSWORD=123456  #這是主機的密碼,建議各主機密碼設成一樣的
BASE_SERVER=192.168.6.128  #這是我主機的IP

auto_ssh_copy_id() {
    expect -c "set timeout -1;
        spawn ssh-copy-id $1;
        expect {
            *(yes/no)* {send -- yes\r;exp_continue;}
            *assword:* {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 
[email protected]
$SERVER:/root ssh [email protected]$SERVER /root/install.sh done
install.sh
#!/bin/bash

BASE_SERVER=192.168.6.128
yum install -y wget
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz
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
把這兩個shell指令碼拷到你的主機上,並賦予兩個shell指令碼執行許可權
chmod +x install.sh boot.sh
接下來就可以執行指令碼了
./boot.sh
但可能會報錯:一般有如下可能

1、防火牆沒關,因為要訪問80埠

2、機器沒有scp,安裝scp

yum install -y openssh-clients
3、機器沒有expect 安裝expect
yum install -y expect
再執行boot.sh檔案,一般就能順利完成安裝
安裝成功後,在機器中輸入java有如下介面表示已安裝成功,其他軟體可照這個辦法自動安裝部署





相關推薦

Linux自動化部署指令碼主機JDK環境變數

centos6.7 當我們有很多臺主機,想在每臺機器上都安裝一樣的某些軟體,當然,一臺機器一臺機器安裝也是可以的,但是如果有一鍵安裝所有機器上的軟體那是不是很激動人心呢! 首先我們需要製作一臺伺服器,並把軟體包放在我們的伺服器上 首先進入 /var/www/html資料夾

Linux:寫一個指令碼主機JDK環境變數

 當我們有很多臺主機,想在每臺機器上都安裝一樣的某些軟體時,可以通過指令碼去實現。 首先建立一個資料夾noarch(這裡是因為我之前配置的目錄就在這,所以就寫這個了,你可以隨便寫個名字) mkdir noarch 把事先下載好的軟體包放在這個目錄下(這個過程所有機器

linux環境連線另伺服器的oracle資料庫常見問題詳解

一臺伺服器177 一臺伺服器,有oracle的12 177能ping通12 177不能telnet 12 1521埠 通過xShell隧道在windows能連上12的oracle資料庫 12的1521埠是開啟的。 我總結為是 1.防火牆 有沒有設定1521

不是次努力都會有收穫但是次收穫都必須努力這是一個不公平的不可逆轉。

這幾天比較閒看了下以前的專案,發現了這個spring下的Assert方法,(以前用過,不過好像忘的差不多了*.*) org.springframework.util.Assert; Assert斷言工具類,通常用於資料合法性檢查. 平時做判斷通常都是這樣寫 if (mess

配置Apache虛擬主機實現在服務器運行多個網站

Apache多實例演示Apache虛擬主機實現有三種方法:1、通過不同的IP地址2、通過不同的域名3、通過不同的端口號 1、通過不同的IP地址,解析不同的域名(1)給服務器增加IP(另一個域名解析)[root@http ~]# ifconfig eth0:1 192.168.2.12查看添加成功(2)創建測試

主機搭建多網站使用三種方法

size RoCE 12c 文件夾 網站名 nag htm 提示 右擊 首先,在保證互聯互通的情況下,宿主機作為客戶端,虛擬機作為服務端。1、網卡點擊虛擬機界面右下角,打開設置2、選擇網絡適配器,添加3、依照步驟依次點擊4、需要註意的是,此時要選擇“僅主機模式”然後點:完成

Redis分散式叢集部署安裝及細節(主機搭建多個服務--偽叢集)

Redis分散式叢集部署安裝及細節  一: redis cluster介紹篇 1:redis cluster的現狀 目前redis支援的cluster特性(已親測): 1):節點自動發現 2):slave->master選舉,叢集容錯 3):Hotreshar

畢業了我的四年大學平凡但不平庸(寫位想要認真學習的小夥伴)

去年十月份的時候,我分享了一篇關於我三年大學的文章:[普普通通,我的三年大學](https://mp.weixin.qq.com/s?__biz=Mzg2NzA4MTkxNQ==&mid=2247486062&idx=1&sn=6e2876ebd2031bb8ea49170cca744

bootstrap-table一行數據添加按鈕並綁定事件

http clas for 分享 csdn bubuko info 添加 tail https://blog.csdn.net/mht1829/article/details/72633100 https://blog.csdn.net/qq_39215166/articl

Linux進階自動化運維之ANSIBLE(

運維自動化發展歷程 1、本地部署(On-Premiss) 部署硬體+軟體+作業系統+環境+服務 2、基礎設施即服務(Iaas) 相當於只准備硬體 3、平臺即服務(Paas) 相當於只准備服務 4、軟體即服務(SaaS) 直接使用 企業實際應用場景分析 1、Dev開發環境 使用者:程式

Linux程序間通訊(匿名管道命名管道)(共享記憶體訊息佇列訊號量)

目錄 程序間通訊的介紹 管道 匿名管道 原理: 程式碼實現 匿名管道特性 實現管道符 |  命名管道 命名管道特性 程式碼實現 管道讀寫規則 作業系統中ipc的相關命令 共享記憶體(重點) 生命週期: 程式碼實現 程式碼實現獲

自動化部署指令碼(安裝jdk)

1.先得保證每一臺機器都安裝了scp: 如果沒有安裝則進行安裝: 安裝scp: scp是在安裝ssh的時候安裝的,是在ssh的客戶端軟體裡面的 yum list | grep ssh 安裝的是openssh-clients.x86_64 yum inst

自動化部署指令碼詳解

 當有多臺機器要做相同的部署工作時,為了避免重複勞作,就需要用到自動化部署。自動化部署——簡單來說就是批量的在目標機器上安裝程式。下面我們以安裝JDK來看一下自動化部署是怎麼執行的。        

fabric v1.1 自動化部署指令碼

自動部署如下結構: IP 節點 域名 10.254.186.164 orderer orderer.example.com 10.254.18

MySQL5.7多例項自動化部署指令碼

一、安裝說明 ------------------------------------------------------ mysql5.7.10_onekey_install.sh自動化部署指令碼支援mysql5.7.10初始化安裝,多例項建立,且使用經過優化後的my.cnf配置檔案和mysql.ser

Linux自動化部署和配置工具

轉自:http://bbs.chinaunix.net/thread-3731873-1-1.html 系統部署一、Kickstart主要針對Redhat和CentOS作業系統的安裝和初始配置,不過網路的配置仍然需要一臺一臺地進行。二、Cobbler與Kickstart類

nginx+tomcat負載均衡配置+python自動化部署指令碼

nginx+tomcat負載均衡配置 1、網路拓撲      2、nginx安裝配置 1.安裝nginx伺服器,實現OSI網路模型第七層(應用層)負載均衡及反向代理:       安裝nginx 1.6.1 stable version,  stable version版

Ubuntu 11 編譯 linux-2.6核心 出錯出部分編譯問題解決方暗新問題求解決

# configuration written to .config # make[2]:正在離開目錄 `/home/gdsdj/src/linux-2.6.19' make EXTRAVERSION=dell1400   ARCH=i386 prepare make[2]

003-Ambari自動化部署指令碼

    微信搜尋公眾號:BearData,關注更多內容。 根據前兩篇 “Ambari大資料平臺搭建利器(一)&(二)”, 我們已經完成大資料平臺的搭建,但是我們發現安裝Ambari的步驟比較繁瑣。我們發現手動部署存在以下的劣勢: 每個節點都要執行重複的命令,我們前

【LEOS嵌入式工作室】邏輯的發明讓這個世界逐漸的清晰了起來同時也給每一件事物包裹了層層的語法糖衣在浩瀚的知識海洋中徜徉我們逐漸失去了對事物內在的感觸而浮在了一切事物的表面。在機器的世界裡只有大堆的0和1而在龐大的數字之上便是人賦予它的無限意

邏輯的發明讓這個世界逐漸的清晰了起來,同時也給每一件事物包裹了層層的語法糖衣,在浩瀚的知識海洋中徜徉,我們逐漸失去了對事物內在的感觸,而浮在了一切事物的表面。在機器的世界裡只有一大堆的0和1,而在龐大... (adsbygoogle = window.ad