完全无人值守安装debian.docx
《完全无人值守安装debian.docx》由会员分享,可在线阅读,更多相关《完全无人值守安装debian.docx(9页珍藏版)》请在冰豆网上搜索。
完全无人值守安装debian
《完全无人值守安装debian》
【前言】
本系统可以实现对服务器的完全无人工干预安装,一个新机器只要支持PXE启
动(Dell,HP都是开机按F12进入PXE启动模式),插上网线跟FAIserver能够通信,就
可以装上一个自己需要的系统。
并能根据自己的需要给目标机做任何初始化配置。
本系统能同时安装百台以上的目标机,已在几家大,中型网站公司稳定使用半
年到一年,曾给一家公司安装过几百台Dell2850,Dell2950,Dell6850,HP380g5,
HP580等等。
对于需要经常安装debian的用户能节省很多时间/人力成本。
部署过程如有创新或者疑问,欢迎跟我交流。
Email:
King.Sword# 请将Email地址中的#换成@
【一】FAI系统原理和实现步骤
Debian安装程序支持使用预先配置的文件进行自动安装。
预配置文件可以从网
络或移动介质上加载,并自动回答安装过程中的问题。
用HTTP(FTP)+DHCP+TFTP+PXElinux
来实现Debian的网络自动分发安装。
首先通过dhcp到一些初始信息,得到了引导镜像的
位置,找到了这个引导镜像,通过tftp得到这个镜像,并控制客户机找到aptserver上
的安装控制程序,利用这个程序,通过预先设置好的pre.cfg预配置文件指导安装。
Dhcpserver用来检测客户机(以下称待安装的机器为客户机,待安装的系统为
目标系统),分配给目标机器ip,并告诉目标机器引导镜像的位置。
Tftpserver提供给客户机引导镜像,并提供给客户机的安装过程中的内核参数
和目标系统的配置。
APTserver提供了安装过程所需要的软件包,目标系统通过APTserver进行网络
安装。
【二】创建FAI系统环境
一:
APTServer
FAI系统需要APTmirror提供安装源,现在网上有很多安装源,其实可以不必自
己动手搭建。
因此这些操作可以忽略。
可以直接使用我搭建的APT源。
每天跟一级主战完
全镜像。
http:
//202.108.12.69/debian
也可以自己搭建一个,未必要完全镜像。
andy:
~#mkdir/data/mirror
andy:
~#vi/data/filter
编辑输入以下内容:
*_alpha.deb
*_arm.deb
*_hppa.deb
*_s390.deb *_m68k.deb *_mips.deb
*_mipsel.deb
*_powerpc.deb
*_sparc.deb
*-alpha
*-arm
*-hppa
*-s390
*-m68k
*-mips
*-mipsel
*-powerpc *-sparc
安装rsync,镜像一个已存在的aptserver
andy:
~#apt-getinstallrsync
andy:
~#rsync-vzrtopg--recursive--links--hard-links--times--delete--delete-after-exclude-from=/data/filterftp.kr.debian.org:
:
debian//data/mirror/debian
注:
只选择我需要的i386和ia64包,所以除去alpha,arm.hppa,s390,m68k,mips,mipsel,powerpc,sparc等包。
二:
TFTPServer
当处于某局域网的机器启动的时候,它将发出广播检测网内的DHCPServer,并
收到DHCP发送的信息包,包括IP,和bootimage的存放地址。
TFTPServer提供boot
image。
首先安装tftpd-hpa,xinetd。
注意不能用tftpd包,它不支持bootp协议,无法正确导入bootimage,自动安装会卡住。
tftp服务以superdaemon守护方式运行,我们用xinetd。
andy:
~#apt-getinstalltftpd-hpaxinetd
andy:
~#vi/etc/xinetd.d/tftp
编辑输入以下:
servicetftp
{
disable=no
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/in.tftpd
server_args=-s/data/tftpboot
}
可在server-args那一行选择你的tftp服务根目录。
此时tftp服务已经启用,服务于69端口。
从aptserver下载一个netboot.tar.gz包到tftp根目录,当前目录下解压缩
andy:
/data/tftpboot#wget http:
//202.108.12.69/debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gz
andy:
/data/tftpboot#tar-zxvfnetboot.tar.gz
解压缩后得到一个debian-installer文件夹,和prelinux.0,pxelinux.cfg两个连接,分别指向debian-installer文件夹里的两个文件。
andy:
/data/tftpboot#vi./pxelinux.cfg/default
将LABELinstall改为:
LABELinstall
kerneldebian-installer/i386/linux
appendinitrd=debian-installer/i386/initrd.gzramdisk_size=12094root=/dev/rd/0rwpreseed/url=http:
//192.168.41.3/pre.cfgdebian-installer/locale=en_USconsole-keymaps-at/keymap=usnetcfg/choose_interface=autonetcfg/get_hostname=hnetcfg/get_domain=d--
修改后的文件全部内容如下:
DISPLAYdebian-installer/i386/boot-screens/boot.txt
F1debian-installer/i386/boot-screens/f1.txt
F2debian-installer/i386/boot-screens/f2.txt
F3debian-installer/i386/boot-screens/f3.txt
F4debian-installer/i386/boot-screens/f4.txt
F5debian-installer/i386/boot-screens/f5.txt
F6debian-installer/i386/boot-screens/f6.txt
F7debian-installer/i386/boot-screens/f7.txt
F8debian-installer/i386/boot-screens/f8.txt
F9debian-installer/i386/boot-screens/f9.txt
F0debian-installer/i386/boot-screens/f10.txt
DEFAULTinstall
LABELinstall24
kerneldebian-installer/i386/linux
appendvga=normalinitrd=debian-installer/i386/initrd.gzramdisk_size=10214root=/dev/rd/0rw --
LABELexpert24
kerneldebian-installer/i386/linux
appendDEBCONF_PRIORITY=lowvga=normalinitrd=debian-installer/i386/initrd.gzramdisk_size=10214root=/dev/rd/0rw --
LABELinstall
kerneldebian-installer/i386/linux
appendinitrd=debian-installer/i386/initrd.gzramdisk_size=12094root=/dev/rd/0rwpreseed/url=http:
//192.168.41.3/pre.cfgdebian-installer/locale=en_USconsole-keymaps-at/keymap=usnetcfg/choose_interface=autonetcfg/get_hostname=hnetcfg/get_domain=d--
LABELlinux
kerneldebian-installer/i386/2.6/linux
appendvga=normalinitrd=debian-installer/i386/2.6/initrd.gzramdisk_size=12094root=/dev/rd/0rw --
LABELinstall26
kerneldebian-installer/i386/2.6/linux
appendvga=normalinitrd=debian-installer/i386/2.6/initrd.gzramdisk_size=12094root=/dev/rd/0rw --
LABELlinux26
kerne