资源描述
Lab
Guide
IBM System x
How to Use Linux Scripting Toolkit to Perform Massive Deployment
Document Authors: Neil Tian
IBM Technolody and Product Company
System x Presales Technical Support Team
Revision Level: 1.1
Last Revised: 2009-08-21
一般来说,新的机器在部署操作系统之前,客户要求将所有服务器的固件升级到最新版,同时还提出要对硬盘做RAID,对于有些客户可能还要求对服务器的BIOS、uFEI或者IMM做相应的设置。如果这些工作手动完成,会耗费大量的时间和人力。这篇文章主要介绍如何使用IBM Toolscenter中的Linux ServerGuide Scripting Toolkit来做大规模固件、RAID和BIOS(uEFI、IMM)的部署。
本文章所涉及的软件和硬件环境:
一台3650安装Redhat5u2_x86_64操作系统,安装Linux ServerGuide Scripting Toolkit v1.01,同时这台机器作为DHCP和TFTP服务器进行镜像部署服务器。这台机器要能够上公网。
用一台LS22来作为部署的目标服务器,对它进行firmware的升级、配置两块硬盘成RAID0,升级BIOS和BMC,DSA的微码.如果要更改LS22的启动顺序为Legacy Only –> CD/DVD Rom –> Hard Disk 0 –> PXE Network –> Hard Disk 1 –> Hard Disk 2 –> Floppy Disk。
网络环境如下图
PXE server
(with update image)
Update firmware
Update firmware
Update firmware
Step One:安装和配置Linux ServerGuide Scripting Toolkit
从IBM Support网站下在Linux ServerGuide Scripting Toolkit,拷贝到HS21上,
在当前目录下执行:
rpm –ivh ibm_utl_sgtklnx_1.01.noarch.rpm
完成安装后,进入/opt/ibm/sgtk 目录
cd /opt/ibm/sgtk
然后执行sgtklinux.sh脚本
./sgtklinux.sh
选择y,让它自动去IBM网站下载ibm_utl_boot_tools-110_anyos_x86-64-full.zip包
如果已经有ibm_utl_boot_tools-110_anyos_x86-64-full.zip,可以选择n,然后指定此文件所在位置
进入sgtk,开始进行初始设置
Step ONE:下载最新的firmware
点击Acquire new UXSPs,选择从IBM网站下载,
下一步,选择相应机器的型号,本例中医LS22和LS42为例,从左侧添加至右侧
下一步,将左侧需要的操作系统类型添加到右侧
选择相应的目标操作系统,为了保证完整性和方便性,可将所有的类型都选中,加入到右边,(我们在实施的时候,发现在redhat5.2下面只需要添加suse系统的文件即可)在制作firmware升级镜像的时候,sgtk会自动从下载的升级包中选择需要的升级文件。先Next后,开始自动下载。这个过程所花的时间视网络情况而定。
下一步,它会自动到IBM官网下载最新的firmware
Step TWO:创建Pre-OS安装任务
在TASKS里面选择第一项
选择需要配置的raid类型,本例选择做raid0,此处四个选项卡都可以自己去手动编辑
选择Pre OS Installation,有四个Pre OS的任务,RAID,Firmware Update,ASU和Fibre Channel设定,他们都提供了一些设定模板,可以根据具体要求做相应的更改,例如在ASU里面要更改启动顺序,可以创建一个新的配置文件,写入如下部分:
然后保存(ASU设定的语法请参考ASU的使用文档,这里不再做说明)
在刀片中心的实际操作中,可以在AMM管理模块里面去批量更改启动顺序,也是非常方便的.
在Preferences菜单里
选择Create new repository,将新的repository的地址填上,用来存放firmware、RAID配置等文件的,一般而言系统会默认一个地址,可无需更改。
勾选”Disable the Network share configuration…….”复选框,不使用nfs的方式。这样有助于文件下载的完整性。
在PXE Configuration settings for Network boot中,填入tftpserver的IP地址,以及生成的镜像文件将要存放的地址。本例中该3650机器的IP地址为192.168.0.18
然后点击submit保存。
选择Pre OS Installation,有四个Pre OS的任务,RAID,Firmware Update,ASU和Fibre Channel设定,他们都提供了一些设定模板,可以根据具体要求做相应的更改,例如在ASU里面要更改启动顺序,可以创建一个新的配置文件,写入如下部分:
然后保存(ASU设定的语法请参考ASU的使用文档,这里不再做说明)
Step Four:创建Workflows(注,以下皆使用原教程截图,仅作参考)
点击Workflows,然后选择Create
填入workflow的名称,点击Next
选择RAID、Firmware Update和ASU的设定文件,点Next,直到出现finish。
点击finish之后,会出现刚才创建的Workflow
Step Five:创建Boot Media Creaation
点击Boot Media Creation,然后点击Create
输入Boot Media的文件名,选择刚才创建的Workflow,Boot Method选择PXE方式,点击Next。
点击Next
点击Next
选择相应的机器型号,本例为LS22和LS42,并将检查升级文件的完整性前面打上勾,点击Next
检查完毕,点击Next
点击Create Boot Media,开始创建启动镜像
点击OK,开始创建。
创建完毕。创建完毕的镜像文件都存放在/tftpboot/lnxtoolkit/HS22all下
上述步骤完成后,该软件会自动从IBM官网下载好所需全部文件,并创建启动镜像,路径在
/tftpboot/lnxtoolkit/you(YOU这个文件夹为当初创建镜像时所起的名字命名的文件夹)
在这个文件夹下面,有tc.zip这个压缩包里面是最新的firmware等文件.
Step Six:配置DHCP和TFTP服务器
检查服务器上有没有DHCP和TFTP服务
rpm –q dhcp
rpm –q tftp-server
如果没有安装,请先安装dhcp和tftp-server的rpm包
配置DHCP和TFTP配置文件,这两个文件分别位于/etc/dhcpd.conf和/etc/xinetd.d/tftp
DHCP服务的配置文件如下:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server ;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
allow booting;
allow bootp;
class "pxeclients"{
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
filename "pxelinux.0";
next-server 192.168.0.18;
TFTP服务的配置文件如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动DHCP和TFTP服务
# service dhcpd restart
# service xinetd restart
Step Seven:修改升级镜像的配置文件
将/tftpboot/lnxtoolkit/下的pxelinux.0文件拷贝到/tftpboot下
cp /tftpboot/lnxtoolkit/pxelinux.0 /tftpboot
将/tftpboot/lnxtoolkit/pxelinux.cfg/HS22all拷贝到/tftpboot/pxelinux.cfg/下,并重命名为default
cp /tftpboot/lnxtoolkit/pxelinux.cfg/HS22all /tftpboot/pxelinux.cfg/default
编辑default文件如下:
prompt 0
default toolscenter
timeout 100
label toolscenter
display bsb.msg
kernel /lnxtoolkit/HS22all/img2a
append initrd=/lnxtoolkit/HS22all/img3a vga=0x317 root=/dev/ram0 rw ramdisk_size=100000 tftp_server=192.168.123.2 tftp_tcrootfs=/lnxtoolkit/HS22all/tcrootfs tftp_tczip=/lnxtoolkit/HS22all/tc.zip debug_level=1 silent_boot=no media_boot=no
Step Eight:开始升级
将LS22开机,对于新机器,本地没有操作系统,LS22会从网络启动,通过PXE的方式找网络中的DHCP服务器。如果DHCP和TFTP配置成功,则LS22会开始自动按照toolscenter的设定开始升级和配置过程。
正常的话,升级完毕后,所有的firmware都应该是最新的.但是我们在实际操作中发现有部分firmware并不是最新的,需要我们自己手动去下载好相应最新的firmware文件,添加到如下路径中的tc.zip中.并做一些配置./tftpboot/lnxtoolkit/you/tc.zip
以下引用IBM技术说明:
If you want to update this package with new iMM version, say 19M, this is the steps to update package manually.
1. make a new dir "./tc-tmp"
mkdir tc-tmp
2. unzip tc.zip to ./tc-tmp
unzip -d ./tc-tmp tc.zip
3. update file tc-tmp/sgdeploy/updates/uxsp/ibm_fw_imm_yuoo19j_linux_32-64.xml
rename it as ibm_fw_imm_yuoo19m_linux_32-64.xml and update it
mv ibm_fw_imm_yuoo19j_linux_32-64.xml ibm_fw_imm_yuoo19m_linux_32-64.xml
sed -i "s/19j/19m/g" ibm_fw_imm_yuoo19m_linux_32-64.xml
sed -i "s/19J/19M/g" ibm_fw_imm_yuoo19m_linux_32-64.xml
4. update file tc-tmp/sgdeploy/updates/uxsp/ibm_utl_uxsp_p9sp18a-1.00_sles10_32-64.xml
just update it
sed -i "s/19j/19m/g" ibm_utl_uxsp_p9sp18a-1.00_sles10_32-64.xml
sed -i "s/19J/19M/g" ibm_utl_uxsp_p9sp18a-1.00_sles10_32-64.xml
5. replace ibm_fw_imm_yuoo19j_linux_32-64.bin with ibm_fw_imm_yuoo19m_linux_32-64.bin
6. mv ibm_fw_imm_yuoo19j_anyos_noarch.chg ibm_fw_imm_yuoo19m_anyos_noarch.chg
mv ibm_fw_imm_yuoo19j_linux_32-64.txt ibm_fw_imm_yuoo19m_linux_32-64.txt
7. make a new zip file
cd ./tc-tmp
zip -r tc.zip *
8. Use the new tc.zip to replace the old one.
下面我附上我们这次添加BIOS,BMC,DSA最新微码的过程脚本,供大家参考
首先创建一个目录,用于存放解压后的tc.zip文件,
#mkdir /home/aaa
#cd /tftpboot/lnxtoolkit/you/
#unzip –d /home/aaa tc.zip
然后分别执行下面三个文件更新的脚本
一,BIOS
//update file tc-tmp/sgdeploy/updates/uxsp/ibm_fw_imm_yuoo19j_linux_32-64.xml
//rename it as ibm_fw_imm_yuoo19m_linux_32-64.xml and update it
mv ibm_fw_bios_l8e138a_linux_amd32.xml ibm_fw_bios_l8e155a_linux_amd32.xml
sed -i "s/38a/55a/g" ibm_fw_bios_l8e155a_linux_amd32.xml
sed -i "s/38A/55A/g" ibm_fw_bios_l8e155a_linux_amd32.xml
//update file tc-tmp/sgdeploy/updates/uxsp/ibm_utl_uxsp_p9sp18a-1.00_sles10_32-64.xml
just update it
sed -i "s/38a/55a/g" ibm_utl_uxsp_l8sp09a-1.10_sles10_32-64.xml
sed -i "s/38A/55A/g" ibm_utl_uxsp_l8sp09a-1.10_sles10_32-64.xml
// replace ibm_fw_bios_l8e138a_anyos_i386.bin ibm_fw_bios_l8e155a_anyos_i386.bin
rm –rf ibm_fw_bios_l8e138a_anyos_i386.bin
cp /?/ ibm_fw_bios_l8e155a_anyos_i386.bin .
mv ibm_fw_bios_l8e138a_anyos_i386.chg ibm_fw_bios_l8e155a_anyos_i386.chg
mv ibm_fw_bios_l8e138a_linux_amd32.txt ibm_fw_bios_l8e155a_linux_amd32.txt
ls
//注意:这里把ibm_fw_bios_l8e155a_anyos_i386.bin这个文件替换过去后,权限会跟其他文件不一样,需要执行下面命令,让权限统一
chmod 755 ibm_fw_bmc_l8bt30a_linux_i386.bin
ls
二,BMC
// update file tc-tmp/sgdeploy/updates/uxsp/ibm_fw_imm_yuoo19j_linux_32-64.xml
//rename it as ibm_fw_imm_yuoo19m_linux_32-64.xml and update it
mv ibm_fw_bmc_l8bt23a_linux_i386.xml ibm_fw_bmc_l8bt30a_linux_i386.xml
sed -i "s/23a/30a/g" ibm_fw_bmc_l8bt30a_linux_i386.xml
sed -i "s/23A/30A/g" ibm_fw_bmc_l8bt30a_linux_i386.xml
// update file tc-tmp/sgdeploy/updates/uxsp/ibm_utl_uxsp_p9sp18a-1.00_sles10_32-64.xml
just update it
sed -i "s/23a/30a/g" ibm_utl_uxsp_l8sp09a-1.10_sles10_32-64.xml
sed -i "s/23A/30A/g" ibm_utl_uxsp_l8sp09a-1.10_sles10_32-64.xml
//. replace ibm_fw_bmc_l8bt23a_linux_i386.bin with ibm_fw_bmc_l8bt30a_linux_i386.bin
mv ibm_fw_bmc_l8bt23a_anyos_noarch.chg ibm_fw_bmc_l8bt30a_anyos_noarch.chg
mv ibm_fw_bmc_l8bt23a_linux_i386.txt ibm_fw_bmc_l8bt30a_linux_i386.txt
chmod 755 ibm_fw_bmc_l8bt30a_linux_i386.bin
三:DSA
//update file tc-tmp/sgdeploy/updates/uxsp/ibm_fw_imm_yuoo19j_linux_32-64.xml
//rename it as ibm_fw_imm_yuoo19m_linux_32-64.xml and update it
mv ibm_fw_dsa_l8yt22a_linux_32_64.xml ibm_fw_dsa_l8yt26a_linux_32_64.xml
sed -i "s/22a/26a/g" ibm_fw_dsa_l8yt26a_linux_32_64.xml
sed -i "s/22A/26A/g" ibm_fw_dsa_l8yt26a_linux_32_64.xml
//update file tc-tmp/sgdeploy/updates/uxsp/ibm_utl_uxsp_p9sp18a-1.00_sles10_32-64.xml
//just update it
sed -i "s/22a/26a/g" ibm_utl_uxsp_l8sp09a-1.10_sles10_32-64.xml
sed -i "s/22A/26A/g" ibm_utl_uxsp_l8sp09a-1.10_sles10_32-64.xml
// replace ibm_fw_dsa_l8yt22a_linux_32_64.bin with ibm_fw_dsa_l8yt26a_linux_32_64.bin
. mv ibm_fw_dsa_l8yt22a_anyos_anycpu.chg ibm_fw_dsa_l8yt26a_anyos_anycpu.chg
mv ibm_fw_dsa_l8yt22a_anyos_anycpu.txt ibm_fw_dsa_l8yt26a_anyos_anycpu.txt
ls
chmod 755 ibm_fw_dsa_l8yt26a_linux_32_64.bin
至此,可以在当前目录下打包tc.zip了.
// make a new zip file
cd /home/aaa
zip -r tc.zip *
//Use the new tc.zip to replace the old one.
cp tc.zip /tftpboot/lnxtoolkit/you/
//然后就可以重启dhcpd和tftp服务了
Service dhcpd restart
Service xinetd restart
附件:可参考的完整的dhcp和tftp文件配置
和.
祝你好运!
展开阅读全文