【51CTO独家特稿】FAI全称Fully Automatic Installation,是一种基于Debian GNU/Linux平台的全自动安装集群结点机的软件包,它为构建集群提供了方便快捷的安装方式,可以在几十分钟内实现全部节点机的自动安装。
下图是本次实例讲解的网络拓扑:
配置DHCP服务
安装DHCP服务是为了给需要安装操作系统的客户端分配IP地址。
1、安装DHCP服务。
srv10:~# apt-get install dhcp3-server
2、配置DHCP服务。在/etc/dhcp3/dhcpd.conf文件中增加如下内容。
allow booting; allow bootp; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.220 192.168.1.250; next-server 192.168.1.233; #指定PXE客户端查找的服务器 filename "/pxelinux.0"; #指定启动文件 option routers 192.168.1.254; option domain-name-servers 202.103.24.68; }
配置TFTP服务
安装TFTP服务是为了让需要安装操作系统的客户端可以下载支持PXE的启动文件。
1、安装TFTP服务。
srv10:~# apt-get install tftp tftpd srv10:~# apt-get install xinetd
2、配置TFTP服务。
为了使用新的基于Xinetd服务的TFTP,将/etc/inetd.conf文件中,将以下内容注释。
#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/creater/image
在/etc/xinetd.d目录下创建tftp文件,并加入如下内容(其中“server_args”用于指定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 }
为建立TFTP服务的根目录
srv10:~# mkdir /tftpboot
安装NFS服务
FAI服务通过NFS共享必要的启动及安装文件给FAI客户端。
srv10:~# apt-get install nfs-kernel-server
配置FAI
1、安装FAI。
srv10:~# apt-get install fai-quickstart
2、配置FAI。
使用FAI基本功能是主要需要修改/etc/fai/fai.conf(FAI主配置文件)、/etc/fai/make-fai-nfsroot.conf(FAI使用NFS服务配置文件)、/etc/fai/apt/sources.list(源列表用于NFS-Root,即通过FAI安装的客户机源列表)。
直接使用/etc/apt/sources.list覆盖/etc/fai/apt/sources.list文件。
srv10:~# cp /etc/apt/sources.list /etc/fai/apt/sources.list
修改/etc/fai/fai.conf文件如下内容。
LOGUSER=fai FAI_LOGPROTO=ssh FAI_CONFIG_SRC=nfs://192.168.1.233$FAI_CONFIGDIR#FAI配置文件的存放路径 #MNTPOINT=/media/mirror #注释该句
修改/etc/fai/make-fai-nfsroot.conf文件如下内容。
NFSROOT=/srv/fai/nfsroot #NFS-Root目录路径 TFTPROOT=/tftpboot #指定TFTP服务根目录路径 NFSROOT_ETC_HOSTS="192.168.1.233" #指定NFS服务器地址 #使用fai-setup命令创建NFSROOT目录时下载软件包的地址 FAI_DEBOOTSTRAP="lenny http://ftp.debian.org/debian" NFSROOT_HOOKS=/etc/fai/nfsroot-hooks/ FAI_DEBOOTSTRAP_OPTS="--arch i386 --exclude=dhcp-client,info"
使用如下命令创建FAI所需内容(该步骤视网络情况可能很慢)。
srv10:~# fai-setup -v
使用如下命令创建支持PXE服务器所需的启动、配置文件。
srv10:~# fai-chboot -IFv default
通过修改/srv/fai/config/disk_config/FAIBASE文件指定客户端磁盘分区及指定启动标记。
#bootable:1 #将第1个分区标记启动分区。 disk_config disk1 disklabel:msdos bootable:1 primary / 25G ext3rw,errors=remount-ro primary swap 1Gswaprw
重启相关服务。
srv10:~# /etc/init.d/nfs-common restart srv10:~# /etc/init.d/nfs-kernel-server restart srv10:~# /etc/init.d/dhcp3-server restart srv10:~# /etc/init.d/xinetd restart
配置完成后在/tftpboot目录内容如下。
srv10:~# ll /tftpboot/ total 10012 drwxr-xr-x 3 fai nogroup 4096 2010-12-21 21:35 . drwxr-xr-x 23 root root 4096 2010-12-21 21:35 .. -rw-r--r-- 1 fai nogroup 8732200 2010-12-21 21:35 initrd.img-2.6.26-2-486 -rwxr-xr-x 1 fai nogroup15820 2010-12-21 21:35 pxelinux.0 drwxr-xr-x 2 fai nogroup 4096 2010-12-21 21:36 pxelinux.cfg -rw-r--r-- 1 fai nogroup 1469968 2010-11-24 21:57 vmlinuz-2.6.26-2-486
到此FAI服务器配置完成,重新启动FAI服务所在计算机后,将客户端BIOS设置为从网络启动即可全自动安装Debian系统。客户端root用户的默认密码是fai。
FAI其它配置
1、自定义客户端需要安装的软件包。
如果需要为客户端安装更多的软件包,可以修改/srv/fai/config/package_config/FAIBASE文件,比如安装GNOME桌面环境可在文件中加入gdm和gnome-core。
2、修改客户端磁盘分区。
如果需要修改客户端磁盘分区,可以修改/srv/fai/config/disk_config/FAIBASE文件。
3、执行自定义脚本。
/srv/fai/config/scripts/LAST/50-misc #脚本是在客户端完成所有安装完成后执行的内容,可以在其中加入一些脚本自定义内容。 #fcopy #将FAI服务器/srv/fai/nfsroot/live/filesystem.dir/目录下对应目录的内容得到到客户端对应目录,下面是将/srv/fai/nfsroot/live/filesystem.dir/etc/apt/l*.deb文件复制到客户端/etc/apt目录中。 fcopy -i /etc/apt/l*.deb #$ROOTCMD #用于在客户端本地执行的内容。 $ROOTCMD echo "root:debian" | $ROOTCMD chpasswd
作者简介:张勤(博客),MCSE、MCDBA、RHCE,从事软件开发(Delphi、Java)、项目管理、系统集成工作。曾参与多个基于Windows及Linux的大型系统集成项目,并在国内多个知名IT网站发表技术类文章。
【编辑推荐】