安装软件包:自动安装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 -yapt-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.confddns-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-hpaTFTP_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/faiNFSROOT_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/FAIBASEPACKAGES 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/defaultlabel ct7u2_64kernel vmlinuz-7u2append 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=0ipappend 2

Debian Fully Automatic Installation PXE自动安装FAI相关推荐

  1. 通过 PXE 自动安装操作系统:部署 PXE Server

    通过 PXE 自动安装操作系统(1):部署 PXE Server PXE(Preboot eXecution Environment) 支持客户端通过网络从服务器端下载系统镜像,并进行安装.在安装过程 ...

  2. 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...

    用Kickstart批量安装Linux|Kickstart,批量安装:Linux的Kickstart的 无人值守安装:linux pxe自动安装linux系统: KickStart + DHCP + ...

  3. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)

    目录 1. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置) 1.1. 需要的软件 1.2. 启动 proxy dhcp 服务 1.3. 关键的几个配置文件 PXE 自动安装物理机 ( ...

  4. pxe安装linux后命令不可用,pxe自动安装linux

    配置自动安装操作系统 1.网卡应支持pxe技术,由网卡作为dhcp的客户端向dhcp服务器请求一个IP地址,dhcp会将ip,网关等信息和的tftp服务器的地址应加载的文件名提供给客户端 2.根据dh ...

  5. 利用kickstart实现pxe自动安装linux

    anaconda概述 是Linux安装主程序,提供交互式界面安装,因此有各种选择,例如:语言.键盘.分区.key.软件包等等. kickstart的含义 目的是把安装系统中的各种选择(语言.键盘.分区 ...

  6. PXE自动安装FreeBSD

    作者信息 作者:diege 时间:2012-05-02 前言 最经准备整理运维自动化相关的技术,发现FreeBSD的PXE安装忘的七七八八了,所以先整理一下,仍到博客上来. 目标 通过FreeBSD ...

  7. PXE自动安装Linux系统

    PXE Preboot Excution Environment 预启动执行环境是由Intel公司研发的基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通 ...

  8. 搭建PXE自动安装centos

    前段时间想学习PXE安装机器,搜了一下发现很零散,自己磕磕绊绊学习,最终成功,总结了一下搭建PXE的搭建过程. 使用虚拟机安装centos7将内存调整为2G,设置1G会出错 1.部署DHCP服务 安装 ...

  9. pxe linux自动安装系统,通过 PXE 自动安装操作系统(1):部署 PXE Server

    PXE(Preboot eXecution Environment) 支持客户端通过网络从服务器端下载系统镜像,并进行安装.在安装过程中,可以通过 Kickstart 配置文件实现无人值守安装,并定制 ...

  10. 21.3centos7 PXE自动安装操作系统

    红帽官方安装指导文档链接 说明:Preboot Excution Environment 预启动执行环境 PXE(网络自动化安装操作系统) Preboot Excution Environment 预 ...

最新文章

  1. 关于学习Python的一点学习总结(5->切片赋值->sort排序->列表操作)
  2. 使用两个ThreadPool
  3. 有关oracle数据库中的日期显示问题
  4. mendeley 多PC同步
  5. idea中修改项目代码后,Git没有提示代码有改动(解决办法)
  6. inline修饰虚函数问题
  7. Android开发二 什么是Android
  8. 类的加载连接和初始化
  9. mqtt js 中乱码_Vue.js 中的 v-cloak 指令——Vue学习之路
  10. 缺失值处理 - 拉格朗日插值法 - Python代码
  11. 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC
  12. C++ opengl GL_POLYGON的绘制
  13. 06.Qt菜单栏工具栏学习(一)
  14. UI 设计常用尺寸规格
  15. Bat批处理脚本--常用命令
  16. 送抖音直播云挤地铁教程
  17. EL表达式和JSTL笔记
  18. 常用的但是容易忘记的css样式..........持续更新,主要自用
  19. 智慧物流信息系统开发需具备哪些功能?
  20. 面向开发者的 Android 8.0 Oreo 详细介绍

热门文章

  1. dds文件怎么在linux查看,Linux 环境编译 OpenDDS 全记录
  2. 三角函数与代数恒等式(1)
  3. 内存卡删除的文件如何恢复?如何恢复比较快?
  4. 用python代码实现一个简单的FSA(有限状态自动机)
  5. 2007世界各国GDP排名
  6. 易基因|一文看懂:ChIP实验和qPCR定量分析怎么做
  7. MVC中局部视图的使用
  8. Acme CAD Converter 命令行模式
  9. 关于ADXL345的资料的汇总
  10. shiro权限框架中五张基本数据表