軟件自動化部署腳本


2017-11-16 20:19:53

1:設計思路:

  (1)軟件自動化部署腳本,即在一台虛擬機運行腳本,就將其他虛擬機上面的軟件安裝好了;

  (2)而前提是自己的機器搭建好了yum網絡版倉庫(本地yum倉庫的安裝配置,如果沒網了,做一個局域網內的yum倉庫),這樣在一台機器上面運行腳本,其他機器可以從這台機器上下載【先安裝wget命令】,安裝【即解壓縮的操作】,配置環境變量等等【前提是腳本也實現了免密登陸操作實現】;

  (3)而這些操作可以分成兩個過程,如果配置好免密登陸ssh登錄,然后使用boot.sh發送一個install.sh腳本到各個機器上面,從而實現軟件自動化部署操作;

2:自動化下載,安裝,配置環境變量的腳本(甚至刷新一下配置文件的命令):

#!/bin/bash

#首先指定自己的yum倉庫即可以下載軟件的服務器名稱,方便引用。
BASE_SERVER=master
#安裝wget軟件
yum install -y wget
#下載yum倉庫上面的軟件
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz
#安裝,即解壓縮安裝自己的軟件
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local
#cat一個東西到這個文件下面。
#配置環境變量。<<重定向輸出,>>重定向輸入。
#cat >>之間有一個字符的空格。
cat
>> /etc/profile << EOF
export JAVA_HOME
=/usr/local/jdk1.7.0_45 export PATH=\$PATH:\$JAVA_HOME/bin EOF

 3:免密登陸和發送腳本的腳本。

#!/bin/bash

#將要安裝的機器的列表,方便下面循環遍歷$SERVERS
SERVERS="slaver1 slaver2 slaver3 slaver4 slaver5 slaver6"
PASSWORD=hadoop
BASE_SERVER=192.168.199.130

#定義一個函數
auto_ssh_copy_id() {
    #expect根據系統的提示,進行應答。set timeout -1;一直不超時等待。
    expect -c "set timeout -1;
        #spawn指行命令。$1第一個參數,$2第二個參數。*匹配任意字符。\r回車。exp_continue表示繼續操作。
        #eof代表沒有提示。exit 0;代表退出。
        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循環,進行遍歷每台機器。
for SERVER in $SERVERS
do
    #循環遍歷發送安裝腳本。發送到/root目錄下面。
    scp install.sh root@$SERVER:/root
    #登陸到這台機器。然后執行這個操作腳本。
    ssh root@$SERVER /root/install.sh
done

 4:下面開始操作,看看是否可以跑起來。(切記,自己的每台機器都有scp命令,並且可以正常執行,你的本地yum倉庫以及搭建好了。):

  首先,如果之前安裝了jdk,配置了環境變量,現在可以先刪除了。然后呢,找一個主機器,啟動你的web服務器。然后呢,將你的jdk傳到這個web服務器上面。

現在可以將httpd服務啟動起來,在瀏覽器訪問一下:

然后呢,瀏覽器訪問一下:

然后呢,記得將腳本上傳到這個有服務器的主機上面,上傳過程省略:

給腳本添加執行權限:

 [root@master hadoop]# chmod +x boot.sh install.sh

5:我自動化安裝的時候綿密登陸出現一點錯誤,讓我手動輸入密碼。原因還需要分析一下:

 免密登陸出現一點錯誤。還沒解決,以后有機會好好研究一下。

2017-11-16 22:28:48


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM