1.获取pxelinux.0文件
yum install syslinux 安装这个包获取pxelinux.0文件
2.搭建dhcp服务器,实现开机网卡可以自动获取ip地址(虚拟机情况做的话,需要关闭其他的dhcp服务器,网卡设置NAT模式)
1).安装包
yum install dhcpd
2).修改配置文件 准备数据(不修改配置是起不来的)
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 默认dhcp服务器配置文件是空的。把范例文件拷贝过来。然后再修改修改。作为配置文件。
subnet 192.168.5.0 netmask 255.255.255.0 { } 对网段进行定义就可以启动服务,这样配置只能起来,但是客户端获取不到地址
--为注释,不用写再配置文件中,网段为你们实验实验的网段,dns服务器自己可以配置自己熟悉的比如114.114.114.114都行。
vim /etc/dhcp/dhcpd.conf
option domain-name-servers 8.8.8.8,1.1.1.1; --配置dns服务器
subnet 192.168.5.0 netmask 255.255.255.0 { range 192.168.221.10 192.168.221.200; --分配dhcp地址池
option routers 192.168.221.1; --配置网关
filename "pxelinux.0" ;--基于网络的boot
next-server 192.168.1.100;--tftp服务器的地址
}
3.搭建TFTP服务
yum install tftp-server
cd /var/lib/tftpboot 去共享目录,把这些文件都拷贝到tftp共享目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 这个文件也要
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ 字符界面的菜单
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/ 菜单的提供文件
cp /mnt/isolinux/initrd.img /var/lib/tftpboot/ 菜单会找这个文件
cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/ 菜单会找这个文件
vim /var/lib/tftpboot/isolinux.cfg 把这个文件修改下作为自定义启动菜单(注意格式)
default menu.c32
timeout 600
label ^Mini
menu label Install ^Mini CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.5.99/ksdir/ks_mini.cfg
label ^Desktop
menu label Install ^Desktop CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.5.99/ksdir/ks_desktop.cfg
label local
menu label Boot from ^local drive
localboot 0xffff
5.搭建httpd服务
yum install httpd
cd /var/www/html/
mkdir centos/{6,7}/os/x86_64 -pv
mount /dev/sr0 /centos/7/os/x86_64 --把光驱挂载上
5.制作应答文件
这个文件可以用图形化界面的system-config-kickstart 这个工具生成
这个工具是基于epel源的
yum install system-config-kickstart
vim ks_mini.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext rootroot
# Use network installation
url --url="http://192.168.5.99/centos/7/os/x86_64/" --这个地址是你自己电脑提供httpd的地址
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# System bootloader configuration
bootloader --append="net.ifnames=0" --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=20000
part swap --fstype="swap" --size=4096
part /data --fstype="xfs" --size=20000
%packages
@^minimal
@base
@core
@gnome-desktop
@ftp-server
tree
autofs
%end
mkdir /var/www/html/ksdir 创建文件夹,把制作好的应答文件 放进去(注意权限 644)
以上配置全部做好
systectl restart httpd
systectl restart dhcpd
systectl restart tftp-server
上面服务全部重启
配置总结:
自动化安装,这个服务器是一台没有任何软件的系统,当服务器启动的时候网卡上面有很多的功能的,它会去找dhcp服务器获取地址,所有我们要有dhcp服务器,当获取了地址,它才能找别人获取引导文件。它自身是没有引导文件,还要让网卡有引导文件,所以需要pxelinux.0这个文件,这样它就可以获取引导文件,要获取引导文件就需要tftp服务器的支持。搭建好tftp服务器,把需要的文件都放进去存放的时候要按照一定的格式存放,菜单文件需要修改。同时还要把内核文件都放进来,让它去找应答文件,安装好httpd服务,再把应答文件放进去,这样引导文件走菜单获取了应答文件,从应答文件获取相应的安装步骤。这样你直接加点开启服务器它就可以实现自动安装!
关于tftp服务器的相关文件
initrd.img vmlinz 都是从光盘获取的
default 就是菜单文件也是总光盘获取的,源文件是isolinux.cfg 但是必须按照图片里面的格式来存放。pxelinux.0是从