簡化操作系統安裝過程能夠減少管理雲計算環境所需的時間。本文講解如何在新的 IBM Power™ System 或 System p® LPAR 上自動安裝 SUSE Linux®。這種安裝方法也適用於安裝 Red Hat Linux 或 AIX®。
雲計算的特性之一就是能夠將應用程序從一個處理器環境移動到另一個。這個特性要求在移動應用程序之前 存在一個接收它的目標操作系統。如果能夠自動化新操作系統的安裝,不是很好嗎?
Intel™ 架構系統的一個為人熟知的特性就是能夠自動安裝 Linux。不過,對於使用硬體管理控制台的 System p 或 IBM Power Systems,自動安裝 Linux 是一個棘手的問題。本文討論的解決方案的優點之一是:它是一個純 Linux 解決方案,並且不要求您掌握任何具體的 AIX 技術。
自動化解決方案概述
這個解決方案的目標是通過使用一組易於維護和修改的配置自動化操作系統的安裝。它具有以下特徵:
構建和使用自動化解決方案的步驟包括:
步驟 1. 配置 AutoYaST 文件
SUSE Linux 使用一個名為 AutoYaST.xml 的 XML 配置文件控制操作系統的安裝。默認情況下,每次使用 AutoYaST 時它都會使用相同的配置安裝系統。這使您能夠獲得特定於不同配置的 AutoYaST 文件。例如,您可能有一個針對 Web 伺服器的 AutoYaST 文件,以及另一個針對 MySQL 伺服器的 AutoYaST 文件。然而,如果伺服器僅是 IP 地址和主機名不同,為它們配置和維護多個 AutoYaST 文件是相當困難的,並且很費時。
要創建一個從 DHCP 伺服器獲取 IP 地址和主機名的定製 AutoYaST 文件,必須從 SUSE 安裝 CD 複製 AutoYaST 文件,並按以下的說明修改它:
有了這個腳本之後,就不需要單獨為每個 LPAR 準備硬編碼 IP 地址的 AutoYaST 文件。因此,您只需維護 DHCP 伺服器。
<scripts> <init-scripts config:type="list"> <listentry> <filename>network_setup</filename> <interpreter>shell</interpreter> <source><![CDATA[#!/bin/bash ### Disable ipv6 echo '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 HOSTNAME echo "$HOSTNAME" > /etc/HOSTNAME ### Setup Gateway Address echo "default $GATEWAY - -" > /etc/sysconfig/network/routes ### Setup /etc/hosts with correct host information HOST=`/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 configuration INT_CONF_FILE=/etc/sysconfig/network/ifcfg-eth-id-`ifconfig eth0 | grep HWaddr | awk '{ print $5 }' | perl -ne '$var=簡化操作系統安裝過程能夠減少管理雲計算環境所需的時間。本文講解如何在新的 IBM Power™ System 或 System p® LPAR 上自動安裝 SUSE Linux®。這種安裝方法也適用於安裝 Red Hat Linux 或 AIX®。
構建和使用自動化解決方案的步驟包括:
步驟 1. 配置 AutoYaST 文件 SUSE Linux 使用一個名為 AutoYaST.xml 的 XML 配置文件控制操作系統的安裝。默認情況下,每次使用 AutoYaST 時它都會使用相同的配置安裝系統。這使您能夠獲得特定於不同配置的 AutoYaST 文件。例如,您可能有一個針對 Web 伺服器的 AutoYaST 文件,以及另一個針對 MySQL 伺服器的 AutoYaST 文件。然而,如果伺服器僅是 IP 地址和主機名不同,為它們配置和維護多個 AutoYaST 文件是相當困難的,並且很費時。 要創建一個從 DHCP 伺服器獲取 IP 地址和主機名的定製 AutoYaST 文件,必須從 SUSE 安裝 CD 複製 AutoYaST 文件,並按以下的說明修改它:
清單 1. AutoYaST DHCP 轉換腳本
步驟 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 文件
下面詳細說明示例 dhcp.conf 文件中的選項:
可以使用 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 上使用它,並嘗試從網路中的伺服器引導它。 該示例命令假設:
清單 3. 示例 lpar_netboot 命令
注意:清單 3 使用反斜杠字元表示連續行;它不是該命令的一部分。輸入命令時切勿使用反斜杠。 以下是該示例中所用的參數的詳細說明:
本文 下載 小節的壓縮文件包含一個名為 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 命令一起使用,以開始操作系統的自動化安裝。 這個示例假設:
清單 4. 示例 lpar_netboot 伺服器 -g 參數
注意:清單 4 使用反斜杠字元表示連續行;它不是該命令的一部分。輸入命令時切勿使用反斜杠。 清單 4 中的 insmod 參數裝載一個虛擬 Ethernet 適配器。如果當前引導的 LPAR 擁有一個物理 Ethernet 適配器,則不需要該參數。 步驟 5. 重用自動化解決方案 現在,您已經擁有一個在雲環境中輕鬆管理 LPAR 的配置。通過以下步驟添加新的 LPAR:
現在,您惟一需要做的就是等待操作系統安裝完成。安裝完成之後,您的雲環境就有了一個新的 LPAR,它已經準備好接受您需要裝載的進程。(責任編輯:A6) ; print lc($var)'` echo 'DEVICE=eth0' > $INT_CONF_FILE echo 'BOOTPROTO=static' >> $INT_CONF_FILE echo "IPADDR=$IP_ADDRESS" >> $INT_CONF_FILE echo "NETMASK=$NETMASK" >> $INT_CONF_FILE echo "BROADCAST=$BROADCAST" >> $INT_CONF_FILE echo "NETWORK=$NETWORK" >> $INT_CONF_FILE echo 'STARTMODE=onboot' >> $INT_CONF_FILE echo '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 伺服器使更改生效。
___FCKpd___1 |
下面詳細說明示例 dhcp.conf 文件中的選項:
可以使用 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 上使用它,並嘗試從網路中的伺服器引導它。
該示例命令假設:
___FCKpd___2 |
注意:清單 3 使用反斜杠字元表示連續行;它不是該命令的一部分。輸入命令時切勿使用反斜杠。
以下是該示例中所用的參數的詳細說明:
本文 下載 小節的壓縮文件包含一個名為 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 命令一起使用,以開始操作系統的自動化安裝。
這個示例假設:
___FCKpd___3 |
注意:清單 4 使用反斜杠字元表示連續行;它不是該命令的一部分。輸入命令時切勿使用反斜杠。
清單 4 中的 insmod 參數裝載一個虛擬 Ethernet 適配器。如果當前引導的 LPAR 擁有一個物理 Ethernet 適配器,則不需要該參數。
步驟 5. 重用自動化解決方案
現在,您已經擁有一個在雲環境中輕鬆管理 LPAR 的配置。通過以下步驟添加新的 LPAR:
現在,您惟一需要做的就是等待操作系統安裝完成。安裝完成之後,您的雲環境就有了一個新的 LPAR,它已經準備好接受您需要裝載的進程。(責任編輯:A6)
[火星人 ] 自動化 Linux 雲安裝已經有497次圍觀