批量部署Linux操作系统systemimager 使用(3)

4. 从IA-64机器中复制elilo.efi到你的tftpboot目录,并让它全局可读。这个文件通常在/boot/efi或/usr/lib/elilo子目录中。同样也可在IA64发行版的elilo包中获得。
必须在tftpboot目录中创建一个elilo.conf文件。样例在/usr/share/doc/systemimager-doc/examples中,或者输入下面的。
5. 编辑/var/lib/tftpboot/elilo.conf:
#
# Sample elilo.conf for netbooting ia64 systemimager clients
#
# Inside your tftp directory you may also want to do this:
#
#   mkdir -p ia64/standard
#   cp /usr/share/systemimager/boot/ia64/standard/* ia64/standard/
#
default=systemimager
image=ia64/standard/kernel
    label=systemimager
    initrd=ia64/standard/initrd.img
    root=/dev/ram
    append="vga=extended ramdisk_blocksize=4096 console=tty0"
    #
    # Uncomment APPEND line below, and comment out APPEND line above, to use
    # both monitor (tty0) and first serial port (ttyS0) as console at the
    # same time.
    #
    # NOTE: Be sure your serial port speed is appropriate (57600, 9600, etc.)
    #
    #append="vga=extended ramdisk_blocksize=4096 console=tty0 console=ttyS0,9600n8"
    read-only
如果ABCDEFGH是客户端十六进制IP地址,elilo.efi将会用下面文件中的第一个。  
•  ABCDEFGH.conf
•  ABCDEFG.conf
•  ABCDEF.conf
•  ...
•  A.conf
•  elilo.conf
你可以用ipcalc功能,在syslinux包中可以获得,来计算十六进制的IP地址。
6. 配置客户端支持TFTP启动。
a. 启动到EFI(译者注:可扩展固件接口)
b. 进入启动选择维护菜单
c. 加入启动选项
d. 按在出现"Load file [Acpi/.../Mac()]"时按回车
e. 调用Netboot词条或其它相似的
f. 保存并退出,Netboot在启动菜单中可以用了。
Q: 如何安装自动安装客户端,使得控制台可以通过串口使用。
A: si_mkautoinstallcd和si_mkautoinstalldisk把持-append选项,准许为自动安装内核指定安装参数,包括串口控制台选项。例如:
si_mkautoinstallcd -out-file autoinstall.iso -append "console=ttyS0"
Q: DHCP服务器必须在镜像服务器上么?
A: 不是。如果你使用DHCP,可以用"option-140"并对镜像服务器的IP地址设置它的值。如果你使用si_mkdhcpstatic来配置dhcpd.conf文件,它会询问你镜像服务器的IP地址并为你加入适当的词条。
因为这不是option-140的官方用法,要么获得一个官方分配的号或应用一个私有范围的号来完成工作。
Q: SystemImager可以用在哪个发行版中?
A: SystemImager设计上可以在任何发行版中使用。镜像配置登记由System Configurator处理,它通过使用"footprinting"技术区别使用的系统配置文件类型,并配置网络,启动和其它一些信息。如果你发现哪个发行版本中不能使用SystemImager,请提交问题报告。
Q: 如何在自动安装内核中加入特殊板卡驱动?
A: 如果标准的启动包中不包含你需要驱动的硬件,可以使用UYOK特性自己创建一个定制的启动包。见 ()).
Q: 我需要对用来获得镜像的客户端准备些什么?
A: 当然,你要安装systemimager-client包。如果这个包已经安装,只需要在从镜像服务器中执行si_getimage前执行si_prepareclient命令。可以安装任何软件,配置任何文件,按照你的选择对系统进行定制。
Q: 我可以在超过一台机器上使用自动安装磁盘或是自动安装CD么?
A: 当然可以。自动安装介质是通用的,可以在任何机器上自动安装。
Q: 如果将镜像送到客户端?
A: 用3.8.0版本启动,可以使用si_pushinstall命令,它会从镜像服务器上打开一个SSH通道到客户端。然后每个客户端使用镜像服务器打开的SSH通道进行下载镜像。这是在不安全的网络中进行的最安全的安装客户端的方法。
Q: 如何将镜像拉到客户端?How do I pull an image to a client?
A: 如果你执行si_mkdhcpserver来配置你的dhcp信息,如果你回答了所有执行si_getimage时被问的问题,包括主机名和IP地址,然后你要做的就是用下面的3种形式的自动安装介质之一启动客户端:
1. 自动安装CD - 它启动时间短并且持久性佳,但是必须有刻录机并且客户端可以读CD盘。i
2. 自动安装磁盘 - 启动时间短,但是要求客户端的BIOS支持从USB设备启动。
3. 网络启动 - 启动时间很显著,但是这个方法要求客户端网卡具有PXE功能和服务器端的配置。
见本手册的命令参考章中si_mkautoinstallcd和si_mkautoinstalldisk词条获得更多信息。
Q: 安动安装客户端如何知道要安装哪个镜像?
A: 通过读自动安装客户端的步骤来更好的理解这个答案:
1. 启动自动安装介质
2. 从DHCP获得一个IP地址
3. 通过DHCP来决定镜像服务器的IP地址
4. 从镜像服务器要求一个hosts文件
5. 在hosts文件中找到基于IP地址的主机名
6. 从镜像服务器中得到一个基于主机名的(例如:www237.sh)脚本。
7. 执行这个脚本。
正在说的这个脚本是当你执行si_getimage时动态创建的$image.master脚本的一个软链接。这个脚本明确地指出从镜像服务器中取得哪个镜像。打开它看看。
这些脚本和$image.master脚本可以在/var/lib/systemimager/scripts中找到。
Q: 如果想给客户端分配静态IP可以么?怎么做?
A: 可以。si_getimage会问你是否要用静态IP。
Q: 我想用DHCP来分配静态IP给我的客户端,但是我不想手工输入1000个mac地址。我该怎样做?
A: SystemImager有si_mkdhcpstatic功能。你启动客户系统,DHCP服务器会连续地分配地址。按照你想要它们接收IP地址的顺序启动系统,你可以确保它们获得你想要给它们分配的IP地址。启动系统后,执行si_mkdhcpstatic。它会重写/etc/dhcpd.conf文件,按照每个客户端的主机名及MAC地址。然后重启DHCP进程。因此,每次客户端要从DHCP获得一个IP地址,它总会被分配到适合的静态IP地址。
注意:应用客户主机名代替明确的IP地址,所以要更改DHCP服务器(或者DNS,NIS等)中的hosts文件来更改客户端接收到的IP地址。
注意:通过DHCP分配静态IP地址是作者选择的一种在大量系统中管理IP的好方法。
Q: 我能期望什么样的性能?
A: Ole Holm Nielsen,物理系,丹麦技术大学报告:
在我们的SystemImager安装中,我们可以在6分钟内安装1.8G的镜像到18个客户端。请见The NIFLHEIM SystemImager Page()。我们的服务器拥有Gigabit网络,2GB的RAM,dual Intel Xeon 2.4 GHz,而客户端是Intel P4和100 Mbit网络。.
James Braid 报告:
从一个Celeron 700/512Mb服务器,100Mbit网络,我们做到了7~10分钟安装大概1G的镜像。硬盘是设置了LVM的5x 120Gb Seagate Barracuda V(non striped),文件系统为ReiserFS。
Q: 如何更新镜像服务器中的镜像?
A: 有两种方法更新镜像服务器中的镜像:
1. 在客户端进行一些改变然后再次执行si_getimage。
- 指定相同的镜像名称,在当前镜像将要被更新的情况下(只有更改的部分被考走)。
- 或者你可以指定一个新的镜像名称而且具有版本控制(强烈推荐这种方法)。
注意:每次执行si_getimage,重新创建一$image.master脚本。如果你自定义了$image.master脚本,确保再次执行si_getimage前保存它。
2. 直接更改文件。可以cd到此适当的镜像目录并更改文件,或者(推荐)cd到镜像目录然后执行‘chroot.sh’。这将会改变你工作的根目录到你想要操作镜像的根目录。然后在镜像中执行rpm或是其它命令并不用担心损坏或是弄混镜像服务器。改完后,输入exit你将会回到正常的shell中。
Q: 如何更新客户端来匹配镜像?
A: 一旦你更新了镜像服务器中的镜像,就可以更新服务器端。(不需要完全的重新安装)可以在客户端用si_updateclient命令,将镜像服务器的名称和想要更新到客户端的镜像做为命令的参数。执行si_updateclient -help获得更多关于这个命令的信息。推荐使用“如何更新镜像服务器中的镜像?”FAQ中版本控制方将执行完si_updateclient以测试镜像的生产环境恢复到已知状态。(例如,对上一个可以工作的镜像执行si_updateclient)。
客户端/etc/systemimager/updateclient.local.exclude文件是用来从被si_updateclient命令正在更新的文件中排除文件和目录。可以更改它以适应自己的环境。
Q: updateclient.local.exclude这个文件是用来干什么的?
A: si_updateclient命令使用它。见"如何更新客户端来匹配镜像?"FAQ获得更多信息。
Q: 如何使用SystemImager更新一小部分文件?例如,我应用了安全补丁,想将所有机器都安装。
A: 在客户端使用si_updateclient命令。
1.选用下面的一个方法更新服务器中的镜像:
a. 直接在镜像中应用补丁apply the patch to the image directly
b. 在一个客户端上应用补丁,然后执行si_getimage指定相同的镜像名(不会花费太长时间更新镜像)
c. 在一个客户端上应用补丁,然后执行si_getimage指定不同的镜像名。选择这个可以对版本控制。
2. 在你想要更新的客户端执行si_updateclient。执行si_updateclient -help来获得语法帮助。
Q: 有没有保存自动安装客户端状态的日志文件?
A: 有。SystemImager日志可以在镜像服务器中的/var/log/systemimager中找到。
Q: SystemImager基于其它什么软件?
A: SystemImager大部分由Perl编写,要用以下的软件:
• busybox
• bc
• devfsd
• ISC dhcp
• discover
• dosfstools
• e2fsprogs
• jfsutils
• xfsprogs
• Linux kernel
• parted
• pxelinux
• rsync
• syslinux
• raidtools
• reiserfsprogs
• systemconfigurator
• uClibc
为了确定还是看一下System Installation Suite (SIS),其中包括SystemInstaller,SystemImager和System Configurator。SystemInstaller是准许你安装镜像目录到镜像服器中的软件。标准的SystemImager版本中使用System Configurator,执行配置目标机,如IP地址,网卡,安装后用来启动客户端的初始化RAM盘。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3defff43ae91e5c8d8daa5c650ac59fb.html