主机名 | 操作系统 | ip地址 |
无人值守系统 | CentOS Linux release 7.9.2009 (Core) | 192.168.71.128 |
客户端 | 未安装系统 | - |
1.1 由于DHCP是用于为客户端主机分配可用IP地址,而且是客户端与服务端文件传输的基础,所以首先配置DHCP服务
yum install dhcp -y #配置DHCP服务 vim /etc/dhcp/dhcp.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # allow booting; allow bootp; #这两行指定BIOS运行使用PXE启动 ddns-update-style interim; ignore client-updates; #忽略客户端更新dns记录 subnet 192.168.71.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.71.100 192.168.71.200; #可分配的IP地址范围 option subnet-mask 255.255.255.0; #指定子网掩码 option domain-name-servers 192.168.71.128; default-lease-time 21600; #设置默认IP地址租用期限 max-lease-time 43200; #设置IP地址最长租用期限 next-server 192.168.71.128; #告诉客户端TFTP服务器地址 filename "pxelinux.0"; #告诉客户端从TFTP根目录下载pxelinux.0文件 }
[root@master alertscripts]# systemctl start dhcpd [root@master alertscripts]# lsof -i :67 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dnsmasq 2595 nobody 3u IPv4 35159 0t0 UDP *:bootps dhcpd 8811 dhcpd 7u IPv4 95958 0t0 UDP *:bootps [root@master alertscripts]# netstat -lntup | grep dhcpd udp 0 0 0.0.0.0:67 0.0.0.0:* 8811/dhcpd [root@master alertscripts]# ps -ef | grep 8811 dhcpd 8811 1 0 13:16 ? 00:00:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
在虚拟机上需要关闭虚拟机自带的DHCP服务
1.2 配置HTTP服务
[root@master ~]# yum install httpd -y [root@master ~]# systemctl start httpd [root@master ~]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 1221 root 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2922 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2923 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2924 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2925 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 2926 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4224 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4232 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4233 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4274 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) httpd 4275 apache 4u IPv6 29408 0t0 TCP *:http (LISTEN) [root@master ~]# mkdir /var/www/html/centos7 #使用mount命令将光盘镜像文件挂载到对应目录 [root@master ~]# mount /dev/cdrom /var/www/html/centos7/ [root@master ~]# df -mh 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 894M 0 894M 0% /dev tmpfs 910M 17M 893M 2% /dev/shm tmpfs 910M 11M 900M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/mapper/centos-root 15G 4.4G 11G 30% / /dev/sda1 1014M 185M 830M 19% /boot /dev/mapper/centos-var 2.0G 1.1G 977M 52% /var tmpfs 182M 36K 182M 1% /run/user/1000 /dev/sr0 4.4G 4.4G 0 100% /var/www/html/centos7
1.3 配置简单文件传输协议TFTP
由于tftp协议是被xinetd服务所管理的,所以需要到/etc/xinetd.d/tftp配置文件中启动tftp协议
[root@master ~]# yum install tftp-server xinetd -y [root@master ~]# vim /etc/xinetd.d/tftp #default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #将yes改为no per_source = 11 cps = 100 2 flags = IPv4 }
[root@master ~]# systemctl start xinetd [root@master ~]# lsof -i :69 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME xinetd 9496 root 5u IPv4 108864 0t0 UDP *:tftp [root@master ~]# netstat -lntup | grep xinetd udp 0 0 0.0.0.0:69 0.0.0.0:* 9538/xinetd udp 0 0 0.0.0.0:69 0.0.0.0:* 9496/xinetd
1.4 配置syslinux,这是一个引导加载程序主要引导加载内核
initrd.img是一个内核文件
pxelinux.0是pxe系统的启动引导程序
isolinux目录存放的是系统的镜像文件
vmlinuz是启动过程中引导必要驱动时使用的虚拟内核
[root@master ~]# yum -y install syslinux [root@master ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@master ~]# cp /var/www/html/centos7/isolinux/* /var/lib/tftpboot/ [root@master ~]# cp /var/www/html/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
1.5 新建pxelinux.cfg目录,将系统光盘的开机选项菜单复制到该目录中,并命名为default,这个文件就是开机时的选项菜单
[root@master ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@master ~]# cd /var/lib/tftpboot/pxelinux.cfg [root@master pxelinux.cfg]# cp /var/www/html/centos7/isolinux/isolinux.cfg ./default [root@master pxelinux.cfg]# vim default default linux #将文件第一行默认值改为linux,这样系统在开机时就会默认执行名称为linux的选项了 #往下查找label linux选项,修改initrd参数 label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=http://192.168.71.128 ks=http://192.168.71.128/ksconfig/ks.cfg quiet
root@master pxelinux.cfg]# cd /var/www/html/ [root@master html]# mkdir ksconfig [root@master html]# cp /root/anaconda-ks.cfg ./ksconfig/ks.cfg [root@master html]# cd ksconfig [root@master ksconfig]# chmod 644 ks.cfg [root@master ksconfig]# vim ks.cfg #version=DEVEL # System authorization information install #告诉安装程序这是一次全新的安装 auth --enableshadow --passalgo=sha512 # Use CDROM installation media url --url=http://192.168.71.128/centos7 #将光盘镜像安装方式修改成http协议 text #使用文本模式安装 # Use graphical install graphical # Run the Setup Agent on first boot firstboot --disabled #禁止系统第一次引导启动设置代理 firewalld --disabled #禁用防火墙 ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=cn --xlayouts='cn' #键盘类型 # System language lang zh_CN.UTF-8 #指定安装过程中的默认系统语言 # Network information network --bootproto=dhcp --device=ens32 --ipv6=auto --activate #网卡配置 network --hostname=master #主机名 # Root password rootpw 123456 #root的密码 # System services services --enabled="chronyd" # System timezone timezone Asia/Shanghai --isUtc #指定系统时区,这里是上海 # X Window System configuration information xconfig --startxonboot # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda #指定引导记录写的位置 # Partition clearing information clearpart --all --initlabel #清空所有磁盘内容并初始化磁盘 # Disk partitioning information part /boot --fstype="xfs" --ondisk=sda --size=1024 #分区 part pv.157 --fstype="lvmpv" --ondisk=sda --size=19455 volgroup centos --pesize=4096 pv.157 logvol /var --fstype="xfs" --size=2044 --name=var --vgname=centos logvol swap --fstype="swap" --size=2047 --name=swap --vgname=centos logvol / --fstype="xfs" --size=15360 --name=root --vgname=centos reboot #重启服务器 %packages #指定安装软件包 @^gnome-desktop-environment #@development格式指定安装那些命令或开发程序 @base @core @desktop-debugging @development @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony
还可以可以通过yum软件仓库来安装system-config-kickstart软件包,这是一款图形化的kiskstart应答文件工具可以根据自己的需求生成自定的应答文件