当前位置: 首页 > 工具软件 > FAI > 使用案例 >

Debian Fully Automatic Installation PXE自动安装FAI

贺懿轩
2023-12-01
安装软件包:自动安装DHCP、TFTP、NFS
wget -O - https://fai-project.org/download/074BCDE4.asc | apt-key add -
echo "deb http://fai-project.org/download stretch koeln" > /etc/apt/sources.list.d/fai.list
apt-get update
aptitude install fai-quickstart -y

apt-get install qemu-user-static -y
开启内网NAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 172.16.1.1    

#开启端口转发
echo 1 > /proc/sys/net/ipv4/ip_forward
配置DHCP服务:安装DHCP服务是为了给需要安装操作系统的客户端分配IP地址。
vi /etc/dhcp/dhcpd.conf

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
  interface eth1;
  range 192.168.1.100 192.168.1.250;
  next-server 192.168.1.1;     #指定PXE客户端查找的服务器
  filename "fai/pxelinux.0";   #指定启动文件/srv/tftp/
  option routers 192.168.1.1;
  option domain-name-servers 114.114.114.114;
}

debian9中需要设置ipv4端口

vi /etc/default/isc-dhcp-server 
INTERFACESv4="eth1"
配置TFTP服务:安装TFTP服务是为了让需要安装操作系统的客户端可以下载支持PXE的启动文件。

vi /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="192.168.1.1:69"   #更改为tftp的ip
TFTP_OPTIONS="--secure"
配置FAI源列表

直接使用/etc/apt/sources.list覆盖/etc/fai/apt/sources.list文件

cat /etc/apt/sources.list > /etc/fai/apt/sources.list
配置FAI主配置文件

修改/etc/fai/fai.conf文件如下内容

LOGUSER=fai
FAI_CONFIG_SRC=nfs://192.168.1.1/srv/fai/config #FAI配置文件的存放路径
配置FAI-NFS服务

修改/etc/fai/nfsroot.conf

# For a detailed description see nfsroot.conf(5)

# "<suite> <mirror>" for debootstrap
FAI_DEBOOTSTRAP="stretch http://mirrors.163.com/debian"
FAI_ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'

NFSROOT=/srv/fai/debian9
TFTPROOT=/srv/tftp/fai

NFSROOT_HOOKS=/etc/fai/nfsroot-hooks/
NFSROOT_ETC_HOSTS="192.168.1.1"
#FAI_DEBOOTSTRAP_OPTS="--exclude=wget"
FAI_DEBOOTSTRAP_OPTS="--arch amd64 --exclude=info --include=aptitude"

# Configuration space
FAI_CONFIGDIR=/srv/fai/config
创建FAI所需内容
fai-setup -v
生成默认配置模版
#新版无需在复制
cp -a /usr/share/doc/fai-doc/examples/simple/* /srv/fai/config
创建支持PXE服务器所需的启动、配置文件
fai-chboot -IBv -u nfs://192.168.1.1/srv/fai/config default
配置文件分区软件包修改

修改default配置文件

vi /srv/tftp/fai/pxelinux.cfg/default
default 0
prompt 1
timeout 60
label 0
localboot 0
label debian8
kernel vmlinuz-3.2.0-4-amd64
append initrd=initrd.img-3.2.0-4-amd64 ip=dhcp LOGUSER=fai hostname=localhost root=/dev/nfs nfsroot=/srv/fai/nfsroot aufs  FAI_FLAGS=verbose,sshd,reboot FAI_CONFIG_SRC=nfs://192.168.1.20/srv/fai/debian8 FAI_ACTION=install

通过修改/srv/fai/debian8/disk_config/FAIBASE文件指定客户端磁盘分区及指定启动标记

#bootable:1 #将第1个分区标记启动分区。
disk_config disk1 disklabel:msdos bootable:1
primary  / 25G  ext3rw,errors=remount-ro
primary  swap 1Gswaprw

定义客户端需要安装的软件包

vi /srv/fai/debian8_conf/package_config/FAIBASE

PACKAGES aptitude DEBIAN
cron
debconf-utils
file
hdparm
less
linuxlogo
安装GNOME桌面环境可在文件中加入gdm和gnome-core

修改时区

sed -i "s/TIMEZONE=.*/TIMEZONE=Asia\/Shanghai/g" /srv/fai/debian7/class/FAIBASE.var
重启服务
/etc/init.d/networking restart
/etc/init.d/isc-dhcp-server restart
/etc/init.d/tftpd-hpa restart
/etc/init.d/rpcbind restart
/etc/init.d/nfs-kernel-server restart
/etc/init.d/nfs-common restart

执行自定义脚本

/srv/fai/debian8_conf/scripts/LAST/50-misc  
#脚本是在客户端完成所有安装完成后执行的内容,可以在其中加入一些脚本自定义内容。
#fcopy
#将FAI服务器/srv/fai/debian8/live/filesystem.dir/目录下对应目录的内容得到到客户端对应目录,下面是将/srv/fai/debian8/live/filesystem.dir/etc/apt/l*.deb文件复制到客户端/etc/apt目录中。
fcopy -i /etc/apt/l*.deb
#$ROOTCMD
#用于在客户端本地执行的内容。
$ROOTCMD echo "root:debian" | $ROOTCMD chpasswd
安装过程
Calling task_confdir
Calling task_setup
Calling task_defclass
Calling task_defvar
Calling task_action
Calling task_install
Calling task_partition
Calling task_mountdisks
Calling task_extrbase
Calling task_debconf
Calling task_repository
Calling hook: updatebase.DEBIAN
Calling task_updatebase
Calling hook: instsoft.DEBIAN
Calling task_instsoft
Calling task_configure
Calling task_tests
Calling task_finish
Calling task_chboot
Calling task_savelog

redhat

部署kickstart,只需挂载nfsroot,其他环境无需再搭建,tftp目录保持一致,其他目录可以自定,只需修改/etc/exports

#挂载cdrom
mount /dev/sr0 /mnt

#复制到本地目录
cp -rf /mnt /srv/fai/centos7

#把启动文件拷贝到tftp目录下,并根据需求改文件名
cd /srv/fai/centos7/images/pxeboot/
cp initrd.img vmlinuz /srv/tftp/fai/

#把ks文件放入nfs目录
mkdir /srv/fai/centos7_config
cp ks.cfg /srv/fai/centos7_config/

#把2个目录加入nfs
vi /etc/exports

#更改default文件的initrd、vmlinuz、nfs//XX//srv/fai/centos7_config/ks.cfg
vi /srv/tftp/fai/pxelinux.cfg/default


label ct7u2_64
  kernel vmlinuz-7u2
  append console=ttyS0,9800 console=tty0 load_ramdisk=1 initrd=initrd.img-7u2 ks=nfs://192.168.1.3/s
rv/fai/centos7u2conf/ks.cfg devfs=nomount nofb nodmraid ksdevice=bootif biosdevname=0 net.ifnames=0
  ipappend 2
 类似资料: