使用FAI+PXE批量部署Debian

原创
系统 Linux
FAI全称Fully Automatic Installation,是一种基于Debian GNU/Linux平台的全自动安装集群结点机的软件包,它为构建集群提供了方便快捷的安装方式,可以在几十分钟内实现全部节点机的自动安装。本文简单明了的介绍了使用FAI批量部署Debian的全部过程。

【51CTO独家特稿】FAI全称Fully Automatic Installation,是一种基于Debian GNU/Linux平台的全自动安装集群结点机的软件包,它为构建集群提供了方便快捷的安装方式,可以在几十分钟内实现全部节点机的自动安装。

下图是本次实例讲解的网络拓扑:

使用FAI批量部署Debian

配置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网站发表技术类文章。

【编辑推荐】

  1. 专题:Debian自由软件的精神捍卫者
  2. Debian下通过Bonding实现双网卡单IP
  3. 超好懂的PXE+Kickstart批量安装RHEL5教程
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2009-10-30 08:51:01

Windows 7部署PXE

2011-03-25 11:29:57

nagiosDebian

2010-09-01 11:43:06

KickstartPXE无人值守

2018-12-07 09:05:15

CentOSPXE服务器

2010-12-20 14:45:26

Office 2010

2010-04-29 16:12:16

微软组策略

2014-02-10 15:30:10

PXEUEFI PXE远程安装

2013-11-06 16:13:01

DebianDebian 8Xfce

2014-07-14 09:24:51

Debiansystemd

2009-09-25 11:14:16

Hibernate批量

2012-12-25 13:36:35

无人值守自动化运维

2016-05-04 15:17:33

iDRACPXE网卡

2023-06-13 10:44:51

Debian 11Debian 12

2020-11-04 18:13:24

DebianUbuntuapt-cache命令

2021-12-09 10:17:25

部署实战Linux

2011-02-23 11:15:21

DebianProFTPd

2022-09-07 09:54:02

LinuxDebian

2011-01-28 09:22:36

System x

2021-08-04 12:44:48

Debian 10Debian 11

2023-08-08 10:23:34

点赞
收藏

51CTO技术栈公众号