PXE无人值守服务器搭建
hostname | ip | OS |
---|
server | 192.168.220.138 | centos7 |
1、原理 和流程
PXE并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC)。
- 第一步:客户端向服务端请求、分配网卡IP地址
- 第二步:请求、获取引导文件
- 第三步:请求、下载应答文件
中间所需服务程序PXE+TFTP+FTP+DHCP+Kickstart
Kickstart:KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
2、配置安装DHCP
[root@server ~]# yum install dhcp -y
47 allow booting;
48 allow bootp;
49 subnet 192.168.220.0 netmask 255.255.255.0 {
50 range 192.168.220.50 192.168.220.100;
51 option domain-name-servers 192.168.220.1;
52 option routers 192.168.220.1;
53 option broadcast-address 192.168.220.255;
54 default-lease-time 600;
55 max-lease-time 7200;
56 filename "pxelinux.0";
57 }
3、配置安装FTP
[root@server ~]# yum install tftp tftp-server xinetd vsftpd -y
[root@server ~]# vim /etc/xinetd.d/tftp
6 service tftp
7 {
8 socket_type = dgram
9 protocol = udp
10 wait = yes
11 user = root
12 server = /usr/sbin/in.tftpd
13 server_args = -s /var/lib/tftpboot ====>-s /tftp#默认目录
14 disable = no==>yes #开机自启
15 per_source = 11
16 cps = 100 2
17 flags = IPv4
18 }
[root@server ~]# systemctl restart xinetd
[root@server ~]# lsof -i:69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 27346 root 5u IPv4 171869 0t0 UDP *:tftp
4、安装PXE所需文件
[root@server ~]# yum install syslinux -y
[root@server ~]# mkdir /tftpboot
[root@server ~]# mkdir /tftpboot/pxelinux.cfg
[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@server ~]# mount /dev/cdrom /mnt/ #挂载镜像
mount: /dev/sr0 写保护,将以只读方式挂载
拷贝启动相关的文件
[root@server ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@server ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/ #initrd.img虚拟到内存的文件
[root@server ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/ #vmlinux内核文件
[root@server ~]# chmod 644 /tftpboot/pxelinux.cfg/default #给个权限
[root@server ~]# vim /tftpboot/pxelinux.cfg/default
1 default linux #修改为linux,和下面的label linux对应
61 label linux
62 menu label ^Install CentOS 7
63 kernel vmlinuz
64 append initrd=initrd.img ks=ftp://192.168.220.138/ks.cfg quiet ###修改这一行
[root@server ~]# cp anaconda-ks.cfg /var/ftp/ks.cfg
5 #cdrom #注释这里
6 url --url=ftp://192.168.220.138 #增加这一行
[root@server ~]# chmod 644 /var/ftp/ks.cfg
[root@server ~]# cp -r /mnt/* /var/ftp/
新启一台虚拟机测试,记得关闭自带的dhcp