自動化 Linux 雲安裝

來源:互聯網
上載者:User

雲計算的特性之一就是能夠將應用程式從一個處理器環境移動到另一個。 這個特性要求在移動應用程式之前 存在一個接收它的目標作業系統。 如果能夠自動化新作業系統的安裝,不是很好嗎?

Intel™ 架構系統的一個為人熟知的特性就是能夠自動安裝 Linux。 不過,對於使用硬體管理主控台的 System p 或 IBM Power Systems,自動安裝 Linux 是一個棘手的問題。 本文討論的解決方案的優點之一是:它是一個純 Linux 解決方案,並且不要求您掌握任何具體的 AIX 技術。

自動化解決方案概述

這個解決方案的目標是通過使用一組易於維護和修改的配置自動化作業系統的安裝。 它具有以下特徵:

剛創建和安裝的 LPAR 使用一個靜態 IP 位址。 這僅與 LPAR 的最終配置相關;您可以在安裝過程使用動態主機設定通訊協定(DHCP)。 Automatic Linux Installation and Configuration with YaST2(AutoYaST)配置 XML 檔是很通用的,可以在許多伺服器類型上使用,包括 HTTP、MySQL 等。 AutoYaST 檔不 包含特定于系統的資訊,比如 IP 位址、主機名稱等。 使用這種方式自動化所有內容,這樣在 HMC 上使用一個命令就可以安裝新的 LPAR。

構建和使用自動化解決方案的步驟包括:

配置 AutoYaST 檔 配置 DHCP/BOOTP 和 TFTP 伺服器 使用 HMC lpar_netboot 命令 使用 -g 參數自動化 lpar_netboot 重用自動化解決方案


步驟 1. 配置 AutoYaST 檔

SUSE Linux 使用一個名為 AutoYaST.xml 的 XML 設定檔控制作業系統的安裝。 預設情況下,每次使用 AutoYaST 時它都會使用相同的配置安裝系統。 這使您能夠獲得特定于不同配置的 AutoYaST 檔。 例如,您可能有一個針對 Web 服務器的 AutoYaST 檔,以及另一個針對 MySQL 伺服器的 AutoYaST 檔。 然而,如果伺服器僅是 IP 位址和主機名稱不同,為它們配置和維護多個 AutoYaST 檔是相當困難的,並且很費時。

要創建一個從 DHCP 伺服器獲取 IP 位址和主機名稱的定制 AutoYaST 檔,必須從 SUSE 安裝 CD 複製 AutoYaST 檔,並按以下的說明修改它:

將標準的 AutoYaST 檔配置為使用 DHCP。 將網路區段修改為僅在首次安裝作業系統時使用 DHCP。 進行檢查,確保這些網路區段中沒有分配主機名稱。 如果某個區段存在主機名稱,必須完全刪除該區段。 如果 XML 檔包含靜態 IP 資訊、DNS 資訊 或其他網路資訊,請將這些內容從檔中刪除。 將清單 1 中的代碼複製到 AutoYaST 檔的最後一個 XML 標記之前的位置。 這個新的部分包含一個腳本,它將當前的引導 DHCP 配置轉換成靜態網路設定(在下一次引導 LPAR 時使用該配置)。

有了這個腳本之後,就不需要單獨為每個 LPAR 準備硬編碼 IP 位址的 AutoYaST 檔。 因此,您只需維護 DHCP 伺服器。




清單 1. AutoYaST DHCP 轉換腳本


<scripts> <init-scripts config:type="list"> <listentry> <filename>network_setup</ filename> <interpreter>shell</interpreter> <source><! [CDATA[#!/bin/bash### Disable ipv6echo 'install ipv6 /bin/true' >> /etc/modprobe.conf.local### Variables to Calculate Network Configuration Settings for a static configuration ###ACTIVE_INTERFACE=`/sbin/ifconfig | grep eth | awk '{print $1}'`IP_ADDRESS=`/sbin/ifconfig $ACTIVE_INTERFACE | grep 'inet addr' | awk '{print $2}' | sed 's/addr://'`NETMASK=`/sbin/ifconfig $ACTIVE_INTERFACE | grep 'inet addr' | awk '{print $4}' | sed 's/Mask://'`BROADCAST=`/sbin/ifconfig $ACTIVE_INTERFACE | grep Bcast: | awk '{ print $3 }' | sed 's/Bcast://'`NETWORK=`/sbin/ip route list | grep $IP_ADDRESS | awk '{ print $1 }' | sed 's/\/[1-9][1-9]//'`GATEWAY=`/sbin/route | grep default | awk '{print $2}'`HOSTNAME=`/usr/bin/host $IP_ADDRESS | awk '{print $5}' | sed '$s/.$//'`### Setup HOSTNAMEecho "$HOSTNAME" > /etc/HOSTNAME### Setup Gateway Addressecho "default $GATEWAY - -" > /etc/sysconfig/network/routes### Setup /etc/hosts with corre ct host informationHOST=`/usr/bin/host $IP_ADDRESS | awk '{print $5}' | sed '$s/.$//' | cut -d "." -f 1`echo "$IP_ADDRESS $HOSTNAME $HOST" >> /etc/hosts### Network configuration file rewrite for static co nfigurationINT_CONF_FILE=/etc/sysconfig/network/ifcfg-eth-id-`ifconfig eth0 | grep HWaddr | awk '{ print $5 }' | perl -ne '$var=$_; print lc($var)'`echo 'DEVICE=eth0' > $INT_CONF_FILEecho 'BOOTPROTO=static' >> $INT_CONF_FILEecho "IPADDR=$IP_ ADDRESS" >> $INT_CONF_FILEecho "NETMASK=$NETMASK" >> $INT_CONF_FILEecho "BROADCAST=$BROADCAST" >> $ INT_CONF_FILEecho "NETWORK=$NETWORK" >> $INT_CONF_FILEecho 'STARTMODE=onboot' >> $INT_CONF_FILEecho 'TYPE =Ethernet' >> $INT_CONF_FILE### Restart Network/etc/init.d/network restart ]]></source> </listentry > </init-scripts></scripts>


步驟 2. 配置 DHCP/BOOTP 和 TFTP 伺服器

這個解決方案使用標準的 Linux DHCP 伺服器,該伺服器是所有主要的 Linux 發行版本的一部分。 在這一步驟中,需要配置 DHCP 伺服器以為新的 LPAR 提供網路引導資訊。 初始代碼通過 Trivial File Transfer Protocol(TFTP)伺服器裝載到 LPAR。 要設置網路引導,必須將 DHCP 伺服器和 TFTP 伺服器裝載到網路中的伺服器。

這個解決方案使用的 DHCP 伺服器並沒有配置為動態地向網路中的系統提供 TCP/IP 位址,但它能夠在同一個網路上和擔任這一傳統角色的 DHCP 伺服器共存。 即使 DHCP 伺服器所在的網路與引導系統的網路不同,也可以使用這種類型的配置。 例如,它可以通過德克薩斯州的伺服器動態地引導在紐約的系統。

要使 lpar_netboot 命令能夠按照這個解決方案的 步驟 3 那樣工作,則需要為每個安裝的 LPAR 配置 DHCP 伺服器。 這個方法的優點是:自動安裝 LPAR 所需的所有配置資訊都包含在 dhcpd.conf 檔中。 因此,在前面步驟中更改的 AutoYaST 檔不需要包含任何用於定義 LPAR 網路設定的硬編碼資訊。

清單 2 包含了一個示例 dhcp.conf 檔。 使用這個示例作為一個模型,並為每個需要配置的 LPAR 添加額外的 host 定義。 本文 下載 小節的壓縮檔包含一個名為 addsystem 的腳本,您可以使用它來自動化 dhcpd.conf 檔的編輯過程。

每次更改 dhcpd.conf 檔時,必須重啟 DHCP 伺服器使更改生效。




清單 2. 示例 dhcpd.conf 檔


ddns-update-style ad-hoc;allow bootp;subnet 0.0.0.0 netmask 0.0.0.0 { host rcc-hny-poc-003 { option host-name "myserver.cl oud9.ibm.com"; fixed-address 192.168.0.203; hardware ethernet 16:E9:10:94:87:03; filename "inst64"; } next-server 192.168.0.201; option routers 192.168.0.201;}


下面詳細說明示例 dhcp.conf 檔中的選項:

subnet 將該伺服器配置為回應其他伺服器的請求,而不考慮這些伺服器在網路中的位置。 因為沒有將這個 DHCP 伺服器配置為動態定址,所以它將回應來自 LPAR 的引導請求,並且不影響在網路上進行正常的 DHCP 操作。 host 部分定義每個需要配置的 LPAR。 設定檔中可以擁有多個 host 部分。 這個示例的 host 部分僅包含安裝 LPAR 所需的最少選項(並且以後將 LPAR 作為 DHCP 客戶機引導時還可以使用這個選項)。 host-name 是 DNS 分配給客戶機的 IP 位址的名稱。 如果客戶機沒有 DNS 條目,這個選項應該指定需要包含在 LPAR 的本地主機檔中的名稱。 fixed-address 是分配給 LPAR 的 IP 位址。 這個指定的位址用於代替 DHCP 伺服器的預設位址集區。 這樣做的優點是在每次引導作業系統時為 LPAR 保留這一 IP 位址。 hardware ethernet 指定 LPAR 的 MAC 位址。 使用這個選項在安裝的 BOOTP 階段將 LPAR 和 host 條目關聯起來。 filename 指定回應 BOOTP 請求時需要裝載的 Linux 內核。 必須能夠通過由 next-server 選項指定的伺服器上的 TFTP 訪問這個檔。 或者,如果忽略 next-server,則必須能夠通過 DHCP 伺服器上的 TFTP 訪問這個檔。 next-server 指定伺服器的位址。 在這個伺服器上,通過 TFTP 可以訪問在 filename 選項中定義的 Linux 內核。 如果 TFTP 伺服器與 DHCP 伺服器都在同一個伺服器中,則可以跳過這個選項。 option routers 指定 TFTP 伺服器的位址,前提是將路由器配置為在網路中不將 TFTP 伺服器請求轉發到 TFTP 伺服器。 如果 TFTP 伺服器和 DHCP 伺服器在同一個機器上,則可以跳過這個選項。

可以使用 SLES 發行版本中的 atftpd 包配置 TFTP 伺服器。 TFTP 配置提供一個目錄,在這裡可以使用 TFTP 下載檔案。 下載目錄通常為 /tftpboot。 在 dhcpd.conf 檔中的每個 host 部分的 filename 參數上指定的檔必須位於該下載目錄中。

例如,對於網路安裝 SUSE,該檔為 inst64 檔,可從 SUSE 安裝 CD 的 /suseboot 目錄獲得。 您需要將該檔放到 /tftpboot 目錄,確保所有人都有讀取它的許可權。




步驟 3. 使用 HMC lpar_netboot 命令

就像 HMC 可用於啟動現有的 LPAR 一樣,它也可用於在一個新的 LPAR 上安裝作業系統。 雖然 HMC 提供了一個圖形化使用者介面,但所有 HMC 功能也可以通過命令列來使用。 通過命令列可以進一步自動化這個步驟。

開始網路安裝的 HMC 命令為 lpar_netboot。 本文的 參考資料 小節包含詳細說明如何使用 lpar_netboot 命令的連結。 這個解決方案使用 lpar_netboot 通過網路引導 LPAR。

清單 3 是一個示例 lpar_netboot 命令。 根據需求修改這個示例,然後在一個 LPAR 上使用它,並嘗試從網路中的伺服器引導它。

該示例命令假設:

如本文的前一個步驟所述,配置 DHCP/BOOTP 伺服器,使其帶有新的 LPAR 的 MAC 位址,並且有一個針對 SUSE 安裝程式的條目。 通常將新的 LPAR 作為 DHCP 引導,並且在 dhcpd.conf 檔中包含為它定義的靜態 IP 位址。


清單 3. 示例 lpar_netboot 命令


lpar_netboot -f -t ent -m 16E910948703 -s auto -d auto -S 192.168.0.201 -G \192.168.0.201 -C 192.168.0.203 lpar1 lpa r1 SystemA


注意:清單 3 使用反斜線字元表示連續行;它不是該命令的一部分。 輸入命令時切勿使用反斜線。

以下是該示例中所用的參數的詳細說明:

-m 需要引導的客戶機的 MAC 位址。 可以通過使用另一種形式的 lpar_netboot 命令獲取 MAC 位址。 -S 是 DHCP/BOOTP 伺服器的 IP 位址。 -G 是到達 DHCP/BOOTP 伺服器所需的閘道的 IP 位址。 如果 DHCP/BOOTP 伺服器位於本地網路,則改用 DHCP/BOOTP 伺服器的 IP 位址。 -C 是分配給被引導的客戶機的 IP 位址。 命令末尾有 3 個名稱: LPAR(lpar1)的 HMC 名 LPAR 配置名,預設情況下與 LPAR 本身同名(lpar1) 在 HMC 上擁有 LPAR 的伺服器的名稱(SystemA)

本文 下載 小節的壓縮檔包含一個名為 autoinstall 的示例腳本。 您可以將該腳本安裝到 HMC 伺服器,以使用本文描述的技術自動安裝新的 LPAR。 該腳本自動獲取 LPAR 的 MAC 位址,接著調用 DHCP addsystem 腳本來配置並重啟 DHCP 伺服器,然後調用 lpar_netboot 命令安裝 LPAR。 最後,它調用一個 mkvterm 命令,使您可以看到安裝過程。




步驟 4. 使用 -g 參數自動化 lpar_netboot

新的 LPAR 使用本文前面提到的步驟裝載 Linux 安裝程式。 如果從 HMC 打開一個到 LPAR 的主控台連接,就可以看到安裝程式的初始螢幕。

要進一步自動化安裝,可以使用 lpar_netboot 命令的 -g 參數,將其他參數傳遞到剛引導的系統的安裝程式。 Linux 發行版本(比如 SUSE 和 Red Hat)允許通過網路完全自動化安裝,前提是要將正確的資訊傳遞給安裝程式以啟動安裝。

在 -g 參數上傳遞的資訊是一個字串,它包含安裝程式查找 SUSE AutoYaST XML 檔和 SUSE 作業系統安裝 RPM 所需的資訊。 該資訊的格式由每個發行版本進行歸檔,並且對所有架構都是一樣的(i386 和 Power 等)。

清單 4 是 -g 參數的一個示例,它從伺服器啟動一個自動化安裝。 根據需要修改這個示例,然後將它和 lpar_netboot 命令一起使用,以開始作業系統的自動化安裝。

這個示例假設:

擁有一個在安裝伺服器上運行的 Web 服務器。 這個 Web 服務器可以包含 DHCP 伺服器和 TFTP 伺服器,但這不是必須的。 已經將 SUSE 安裝 CD 映射複製到 Web 服務器文檔根目錄下的一個目錄中。 已經將在本文的 步驟 1 中配置的 AutoYaST.xml 檔的一個副本放置到 SUSE 安裝映射所在的 Web 服務器目錄中。


清單 4. 示例 lpar_netboot 伺服器 -g 參數


-g "hostip=192.168.0.203 netmask=255.255.255.0 \gateway=192.168.0.1 nameserver=192.168.0.1 insmod=ibmveth \ install=HTTP://192.168.0.201/suse autoyast=HTTP://192.168.0.201/autoyast.xml"


注意:清單 4 使用反斜線字元表示連續行;它不是該命令的一部分。 輸入命令時切勿使用反斜線。

清單 4 中的 insmod 參數裝載一個虛擬 Ethernet 配接器。 如果當前引導的 LPAR 擁有一個物理 Ethernet 配接器,則不需要該參數。




步驟 5. 重用自動化解決方案

現在,您已經擁有一個在雲環境中輕鬆管理 LPAR 的配置。 通過以下步驟添加新的 LPAR:

在 HMC 上創建 LPAR。 登錄 HMC SSH 介面並運行 lpar_netboot,確定 LPAR 的 MAC 位址。 使用新的 LPAR 資訊重新配置 dhcpd.conf 檔。 重啟 DHCP 伺服器使對 dhcpd.conf 的更改生效。 再次登錄 HMC 並運行 lpar_netboot 以在 LPAR 上安裝作業系統。

現在,您惟一需要做的就是等待作業系統安裝完成。 安裝完成之後,您的雲環境就有了一個新的 LPAR,它已經準備好接受您需要裝載的進程。







下載

描述名字大小下載方法本文的代碼autoinstall.zip2KBHTTP關於下載方法的資訊





參考資料

學習


您可以參閱本文在 developerWorks 全球網站上的 英文原文。





通過 IBM Systems Information Center 的線上參考條目更多地瞭解 lpar_netboot 命令。





文章 「DHCP (Dynamic Host Configuration Protocol)」 介紹如何配置 DHCP 伺服器。





要詳細瞭解雲計算平臺和應用程式,請閱讀 「Linux 上的雲計算」(developerWorks,2008 年 9 月)。





要進一步瞭解雲計算的背景,請閱讀 「Cloud computing with Amazon Web Services, Part 1: Introduction「(developerWorks,2008 年 7 月)。





在 可愛的 Python:將 XML 和 Python 結合起來介紹 Python 的 XML 工具 中可以找到為 Linux 開發人員準備的更多參考資料(包括為 Linux 新手準備的 Linux 新手入門),還可以查閱 最受歡迎的 文章和教程。





在 developerWorks 上查閱所有 Linux 技巧 和 Linux 教程。





隨時關注 developerWorks 技術活動和網路廣播。








獲得產品和技術


訂購 SEK for Linux,共包含兩張 DVD,其中有用於 Linux 的最新 IBM 試用軟體,包括 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere®。





使用可直接從 developerWorks 下載的 IBM 試用軟體 構建您的下一個 Linux 開發專案。








討論


通過 blog、論壇、podcast 和空間加入 developerWorks 社區。

作者簡介

David Ashley 在嵌入式設備和 IBM 大型機安裝方面擁有超過 25 年的 IT 經驗。 他是 IT 講師、開發團隊主管、系統架構師、系統管理顧問和資料庫集成師。 他目前擔任 IBM Lab Services 的 System p 專案的顧問,並且在業餘時間參與開放源碼 Open Object Rexx 專案。

David Boutcher 以前是 IBM Linux Technology Center 的資深技術人員,並從 1986 年開始在 IBM 開發實驗室工作,他最近轉向各種作業系統的研究。 他的工作領域主要是通信和分散式運算。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.