自動化 Linux 雲安裝

簡化操作系統安裝過程能夠減少管理雲計算環境所需的時間。本文講解如何在新的 IBM Power™ System 或 System p® LPAR 上自動安裝 SUSE Linux®。這種安裝方法也適用於安裝 Red Hat Linux 或 AIX®。

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

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。

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

  1. 配置 AutoYaST 文件
  2. 配置 DHCP/BOOTP 和 TFTP 服務器
  3. 使用 HMC lpar_netboot 命令
  4. 使用 -g 參數自動化 lpar_netboot
  5. 重用自動化解決方案




回頁首


步驟 1. 配置 AutoYaST 文件

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

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

  1. 將標準的 AutoYaST 文件配置爲使用 DHCP。將網絡區段修改爲僅在首次安裝操作系統時使用 DHCP。進行檢查,確保這些網絡區段中沒有分配主機名。如果某個區段存在主機名,必須完全刪除該區段。
  2. 如果 XML 文件包含靜態 IP 信息、DNS 信息 或其他網絡信息,請將這些內容從文件中刪除。
  3. 將清單 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 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=$_; 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 服務器使更改生效。


清單 2. 示例 dhcpd.conf 文件


本文轉自IBM Developerworks中國

      請點擊此處查看全文

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章