一、准备工作 Centos 7.4(图形化界面) 虚拟机1台,内存最少2G。 软件: figlet-2.2.5.tar.gz ,其他(dhcp、tftp、Apache通过YUM安装) dhcp 服务器用来提供IP信息,以及tftp(存放有pxelinux.0引导程序以及内核文件、参数文件)服务器地址。 Apache 服务器用来存放安装源和应答文件。 可以把这几个服务安装在不同的服务器上,也可以装在同一台服务器。 本次实验是将这些服务安装在同一台服务器上。 二、配置DHCP 安装dhcp yum install dhcp -y rpm -ql dhcp |grep example 查找dhcp的实例配置文件 cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example >/etc/dhcp/dhcpd.conf 把实例配置文件内容写到dhcp的配置文件 vim /etc/dhcp/dhcpd.conf 删除注释行,只保留最多的那一个subnet 这里面的网关为什么是189.2,因为本实验用的是Net8网卡,默认是NAT网络,Net8的网卡地址,189.1,NAT的IP是,189.2,所以NAT网络的客户端的网关都是189.2,终端数据都是通过189.2,发给189.1再出去。systemctl start dhcpd systemctl enable dhcpd 三、配置tftp yum install tftp tftp-server xinetd -y vim /etc/xinetd.d/tftp 把disable 这一项的yes 改为no,默认是yes 。
systemctl restart xinetd systemctl enable xinetd systemctl start tftp systemctl enable tftp
四、拷贝引导程序、内核文件到tftp 根目录下。 4.1、引导程序
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 如果没有就安装相应的包。 yum install syslinux -y rpm -ql syslinux|grep pxelinux.0
4.2、内核文件 vmlinuz initrd.img 这两个文件在光盘里面有,直接挂载光盘,拷贝。
这个文件夹是用来存放pxe的配置文件的,而且必须是这个名字。
![]()
vim /var/lib/tftpboot/pxelinux.cfg/default
![]()
![]()
4.3、其他文件 引导菜单配置文件: isolinux.cfg 系统自带的两种窗口模块之一:vesamenu.c32 窗口提示信息文件:boot.msg 窗口背景图片:splash.png
![]()
五、安装httpd yum install httpd -y mkdir -p /var/www/html/dvd 把光盘内容拷贝到这个文件夹下面 cd /var/www/html/dvd cp -r /mnt/cdrom/* . 修改httpd.conf vim /etc/httpd/conf/httpd.conf
![]()
![]()
启动服务,设置开机启动。 systemctl start httpd systemctl enable httpd 六、配置应答文件 6.1、配置本地YUM源。
这里的标题一定要写成[development],在图形化界面配置应答文件的时候,软件安装包选项,才会有内容。
![]()
6.2、安装kiskstart yum install system-config-kickstart -y 进入控制台,打开终端 system-config-kickstart &
![]()
![]()
![]()
![]()
在这里,先添加标准的分区,等一下在配置文件里面去改成LVS分区。
![]()
![]()
![]()
![]()
![]()
![]()
![]()
本次实验,选择的是最小化安装,这里可以根据自已的需要,选择不同的软件包。
![]()
![]()
![]()
还可以在配置文件里面去添加 要执行的脚本内容。 保存配置
![]()
cp /root/ks.cfg /var/www/html/ 七、修改ks.cfg vim /var/www/html/ks.cfg 7.1、把原来标准分区,改为LVS分区,按百分比来分配空间。
修改成下面内容:
7.2、修改安装完成后的脚本。 vim /var/www/html/ks.cfg
++++++++++++++++++++++++++++++++++++++++++++++++++ %post IP=`ifconfig ens33 | awk -F'[: ]+' 'NR==2{print $3}'` Netm=`ifconfig ens33 | awk -F'[: ]+' 'NR==2{print $5}'` Gw=`route -n | awk -F'[: ]+' 'NR==3{print $2}'` DN=`cat /etc/resolv.conf |grep "nameserver"|awk -F' ' 'NR==1{print $2}'` cp /etc/resolv.conf /etc/resolv.conf.bak cd/etc/sysconfig/network-scripts/ cat >ifcfg-eth0 <<EOF TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=$IP NETMASK=$Netm GATEWAY=$Gw DNS1=$DN EOF rm -rf /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network %end 以上这一段脚本功能是,把默认网卡名称:ens33 改成 eth0,IP配置改成静态。 上图中的脚本功能是,不改网卡名称,IP配置改成静态。 ++++++++++++++++++++++++++++++++++++++++ ks.cfg全部内容 #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$Dueb030O$WQvGz.dKGLSL.wl9qn4ZH. # Use network installation url --url="http://192.168.189.132/dvd" # System language lang zh_CN # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # System timezone timezone Asia/Shanghai # System bootloader configuration #在开始安装的时候,把网卡名称改成eth0 bootloader --append=" net.ifnames=0 biosdevname=0 crashkernel=auto" --location=mbr # Network information network --bootproto=dhcp --device=eth0 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="xfs" --size=512 #LVS分区配置 part pv.01 --size=1 --grow volgroup vg01 pv.01 logvol / --vgname=vg01 --percent=90 --name=lv01 logvol swap --vgname=vg01 --percent=5 --name=lv02 %packages @base @core %end %post useradd tom echo windows@123 | passwd --stdin tom yum install vim lrzsz wget gcc gcc-c++ tigervnc tigervnc-server -y #这里 变量获取 IP,还是要查看原来的名称 #因为这时系统装完了,并没有重启,这时的IP信息还是保存在原来的ifcfg-ens33里面的 IP=`ifconfig ens33 | awk -F'[: ]+' 'NR==2{print $3}'` Netm=`ifconfig ens33 | awk -F'[: ]+' 'NR==2{print $5}'` Gw=`route -n | awk -F'[: ]+' 'NR==3{print $2}'` DN=`cat /etc/resolv.conf |grep "nameserver"|awk -F' ' 'NR==1{print $2}'` cp /etc/resolv.conf /etc/resolv.conf.bak cd /etc/sysconfig/network-scripts/ cat >ifcfg-eth0 <<EOF TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=$IP NETMASK=$Netm GATEWAY=$Gw DNS1=$DN EOF rm -rf /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network %end 八、美化boot.msg 8.1、下载安装figlet-2.2.5.tar.gz wget ftp://ftp.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz 需要安装gcc yum install gcc -y tar zxvf figlet-2.2.5.tar.gz cd figlet-2.2.5/ make && make install
![]()
把上面生成的内容,直接复制到boot.msg里面。 vim /var/lib/tftpboot/boot.msg
九、测试,vmware workstation 14 虚拟机,自动安装系统。 需要把虚Vmware 对应的网卡的DHCP关掉。本实验用的是Net8(NAT)
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
自动重新启动
![]()
![]()
![]()
———————————— END ———————————————