1、安装PEX所需服务
dhcp: 分配给客户端提供的IP地址; tftp-server: tftp服务器端, 提供系统安装所需文件; xinetd: tftp服务超级守护进程, 用于唤醒tftp服务; httpd: 基于http服务提供安装源; syslinux: 提供pxelinux.0文件, 此文件用于引导系统, 相当于bootloader;
2、安装所需软件包
yum install httpd httpd-devel dhcp* tftp-server xinetd -y
3、配置tftp服务
将/etc/xinetd.d/tftp文件中的 disable = yes改成disable = no即可,基于sed命令也可以实现
sed -i ‘/disable/s/yes/no/g’/etc/xinetd.d/tftp
TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级 的网络服务,而且具有强大的日志功能。
要实现远程安装系统,需要在TFTPBOOT目录指定相关PXE内核模块及相关参数,配置步骤如下:
内核文件:vmlinuz initrd.img 引导菜单配置文件: isolinux.cfg 系统自带的两种窗口模块之一:vesamenu.c32 1)mount /dev/cdrom /mnt/cdrom 2)yum install syslinux syslinux-devel -y #安装syslinux必备文件 3)mkdir -p /var/lib/tftpboot/pxelinux.cfg/ cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default cp /mnt/cdrom/isolinux/vesamenu.c32 /var/lib/tftpboot/ cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/ cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/ cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
配置TFTPBOOT引导文件default:
default vesamenu.c32 timeout 30 display boot.msg menu clear menu background splash.png menu title CentOS Linux 7 label linux menu label ^Install CentOS Linux 7 menu default kernel vmlinuz append initrd=initrd.img inst.repo=http://10.0.0.6/centos7 quiet ks=http://10.0.0.6/ks.cfg label check menu label Test this ^media & install CentOS Linux 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet
配置文件详解:
default vesamenu.c32 #默认会加载一个菜单 timeout 10 #超时时间为10S display boot.msg menu clear menu background splash.png menu title CentOS Linux 7 label linux menu label ^Install CentOS Linux 7 menu default kernel vmlinuz # 指定要启动的内核。同样要注意路径,默认是/tftpboot目录 append initrd=initrd.img inst.repo=http://10.0.0.6/centos7 quiet ks=http://10.0.0.6/ks.cfg #192.168.0.131是kickstart服务器,ks.cfg是kickstart主配置文件 label check menu label Test this ^media & install CentOS Linux 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet
TFTP配置完毕,由于是TFTP是非独立服务,需要依赖xinetd服务来启动,启动命令为:
chkconfig tftp --level 35 on && service xinetd restart
4.HTTPD+DHCPD配置
远程系统安装,客户端需要下载系统所需的软件包,所以需要使用NFS或者httpd把镜像文件共享出来:
mkdir -p /var/www/html/centos7/ mount /dev/cdrom /var/www/html/centos7/ #cp /dev/cdrom/* /var/www/html/centos7/ (可选配置)
cat>/etc/dhcp/dhcpd.conf<<EOF ddns-update-style interim; ignore client-updates; next-server 192.168.10.4; filename "pxelinux.0"; allow booting; allow bootp; subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.10.180 192.168.10.200; } EOF
# ddns-update-style interim 动态的dns 的更新方式
# ignore client-updates" 这个选项是不允许客户机更新 DNS 记录
#allow booting;#定义能够PXE启动
#allow bootp;#定义支持bootp
# subnet 192.168.10.0 netmask 255.255.255.0 服务端IP网段及掩码
# range 192.168.10.10 192.168.56.20; dhcp 分发的地址范围,最好将本机IP包含在内。
# default-lease-time 600;max-lease-time 7200; IP地址租约时间。
# filename "pxelinux.0"; 指定引导文件位置,这里是TFTP根目录下的pxelinux.0。
# next-server 192.168.56.14; TFTP服务器地址。
dhcp服务端口查看
[root@kickstart ~]# ss -nulp | grep dhcpd UNCONN 0 0 *:44810 *:* users:(("dhcpd",pid=5197,fd=20)) UNCONN 0 0 *:67 *:* users:(("dhcpd",pid=5197,fd=7)) UNCONN 0 0 :::5138 :::* users:(("dhcpd",pid=5197,fd=21))
httpd服务端口查看
ss -tnl | grep 80 LISTEN 0 128 :::80
5. 配置kickstart
可以使用system-kickstart系统软件包来配置,ks.cfg配置文件内容如下:
cat>/var/www/html/ks.cfg<<EOF install text keyboard 'us' rootpw www.jfedu.net timezone Asia/Shanghai url --url=http://10.0.0.6/centos7 lang zh_CN firewall --disabled network --bootproto=dhcp --device=ens33 auth --useshadow --passalgo=sha512 firstboot --disable selinux --disabled bootloader --location=mbr clearpart --all --initlabel part /boot --fstype="ext4" --size=300 part / --fstype="ext4" --grow part swap --fstype="swap" --size=512 reboot %packages @base @core %end EOF
ks.cfg文件组成大致分为3段 命令段 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项 软件包段 %packages @groupname:指定安装的包组 package_name:指定安装的包 -package_name:指定不安装的包 在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。 脚本段(可选) %pre:安装系统前执行的命令或脚本(由于只依赖于启动镜像,支持的命令很少) %post:安装系统后执行的命令或脚本(基本支持所有命令) 关键字 含义 install 告知安装程序,这是一次全新安装,而不是升级upgrade。 url --url=" " 通过FTP或HTTP从远程服务器上的安装树中安装。 url --url="http://10.0.0.7/CentOS-6.7/" url --url ftp://<username>:<password>@<server>/<dir> nfs 从指定的NFS服务器安装。 nfs --server=nfsserver.example.com --dir=/tmp/install-tree text使用文本模式安装。 lang 设置在安装过程中使用的语言以及系统的缺省语言。lang en_US.UTF-8 keyboard 设置系统键盘类型。keyboard us zerombr 清除mbr引导信息。 bootloader 系统引导相关配置。 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" --location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。 --driveorder,指定在BIOS引导顺序中居首的驱动器。 --append=,指定内核参数.要指定多个参数,使用空格分隔它们。 network为通过网络的kickstart安装以及所安装的系统配置联网信息。 network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6 --bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。 static方法要求在kickstart文件里输入所有的网络信息。 {network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2 请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。 --ip=,要安装的机器的IP地址. --gateway=,IP地址格式的默认网关. --netmask=,安装的系统的子网掩码. --hostname=,安装的系统的主机名. --onboot=,是否在引导时启用该设备. --noipv6=,禁用此设备的IPv6. --nameserver=,配置dns解析.} timezone 设置系统时区。timezone --utc Asia/Shanghai authconfig 系统认证信息。authconfig --enableshadow --passalgo=sha512 设置密码加密方式为sha512 启用shadow文件。 rootpw root密码 clearpart 清空分区。clearpart --all --initlabel --all 从系统中清除所有分区,--initlable 初始化磁盘标签 {part磁盘分区。 part /boot --fstype=ext4 --asprimary --size=200 part swap --size=1024 part / --fstype=ext4 –grow --asprimary --size=200 --fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。 --asprimary,强迫把分区分配为主分区,否则提示分区失败。 --size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。 --grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。} firstboot 负责协助配置redhat一些重要的信息。 firstboot --disable selinux 关闭selinux。selinux --disabled firewall 关闭防火墙。firewall --disabled logging设置日志级别。logging --level=info reboot 设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机。
6.重启各个服务,启动新的客户端验证测试:
service httpd restart
service dhcpd restart
service xinetd restart
7. 开启新的虚拟机,BIOS以网卡启动: