实验一:使用 kickstart 半自动化安装CentOS7系统
1.安装system-config-kickstart工具
[root@centos7 ~]#yum -y install system-config-kickstart
2.利用system-config-kickstart生成ks文件
[root@centos7 ~]#export DISPLAY=10.0.0.1:0.0
[root@centos7 ~]#system-config-kickstart
3.生成配置文件内容
[root@centos7 ~]#vim /root/anaconda-ks.cfg
#platf orm=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext centos
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --enable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=eth0
network --hostname=centos7.pex.org
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --nontp
# Use network installation
url --url="http://10.0.0.8/centos/7/os/x86_64/"
# System bootloader configuration
bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
autopart --type=lvm
%post
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup
cat > /etc/yum.repos.d/base.repo < /root/.ssh/authorized_keys <
4.在centos8建立http的yum仓库,和ks文件
#挂载centos7的光盘文件到http目录下
[root@centos8 ~]#mount /dev/sr1 /var/www/html/centos/7/os/x86_64/
#把centos7的ks文件放到http目录下
[root@centos7 ~]scp ks7.cfg 10.0.0.8:/var/www/html/ksdir
#启动httpd服务
[root@centos8 ~]#systemctl start httpd
5.centos7使用ks文件安装系统
#进入开机界面,按esc键进入boot界面
#指定ks文件路径和ip
boot> linux ks=http://10.0.0.8/ksdir/ks7.cfg ip=dhcp
实验八:实现pxe安装双系统centos6、centos7
1.安装相关软件包并启动
[root@centos8 ~]#dnf -y install dhcp-server tftp-server httpd syslinux-nonlinux
[root@centos8 ~]#systemctl enable --now httpd tftp dhcpd
2.配置DHCP服务
[root@centos8 ~]#cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@centos8 ~]#cat /etc/dhcp/dhcpd.conf
option domain-name "xbd.com";
option domain-name-servers 180.76.76.76, 223.5.5.5;
default-lease-time 86400;
max-lease-time 172800;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.50 10.0.0.100;
range 10.0.0.150 10.0.0.200;
option routers 10.0.0.2;
next-server 10.0.0.8;
filename "pxelinux.0";
}
[root@centos8 ~]#systemctl start dhcpd
3.准备yum 源和相关目录
[root@centos8 ~]#mkdir -pv /var/www/html/centos/{6,7,8}/os/x86_64/
[root@centos8 ~]#mount /dev/sr0 /var/www/html/centos/6/os/x86_64/
[root@centos8 ~]#mount /dev/sr1 /var/www/html/centos/7/os/x86_64/
[root@centos8 ~]#mount /dev/sr2 /var/www/html/centos/8/os/x86_64/
4.准备kickstart文件
[root@centos8 ~]#mkdir /var/www/html/ksdir/
[root@centos8 ~]#vim /var/www/html/ksdir/ks6.cfg
[root@centos8 ~]#vim /var/www/html/ksdir/ks7.cfg
[root@centos8 ~]#vim /var/www/html/ksdir/ks8.cfg
5.准备PXE启动相关文件
[root@centos8 ~]#mkdir /var/lib/tftpboot/centos{6,7,8}
#准备CentOS6,7,8各自的内核相关文件
[root@centos8 ~]#cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6
[root@centos8 ~]#cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7
[root@centos8 ~]#cp /var/www/html/centos/8/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos8
[root@centos8 ~]#cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
#以下三个文件是CentOS8安装所必须文件,CentOS6,7则不需要
[root@centos8 ~]#cp /var/www/html/centos/8/os/x86_64/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/
#生成安装菜单文件
[root@centos8 ~]#mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@centos8 ~]#cp /var/www/html/centos/8/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#最终目录结构如下
[root@centos8 ~]#tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── centos6
│ ├── initrd.img
│ └── vmlinuz
├── centos7
│ ├── initrd.img
│ └── vmlinuz
├── centos8
│ ├── initrd.img
│ └── vmlinuz
├── ldlinux.c32
├── libcom32.c32
├── libutil.c32
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
└── default
4 directories, 12 files
6.准备启动菜单文件
[root@centos8 ~]#vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 60
menu title CentOS Linux 8.0.1905
label linux8
menu label Auto install CentOS Linux ^8.0
kernel centos8/vmlinuz
append initrd=centos8/initrd.img quiet ks=http://10.0.0.8/ksdir/ks8.cfg
label linux7
menu label Auto install CentOS Linux ^7.6
kernel centos7/vmlinuz
append initrd=centos7/initrd.img quiet ks=http://10.0.0.8/ksdir/ks7.cfg
label linux^6
menu label Auto install CentOS Linux ^6.10
kernel centos6/vmlinuz
append initrd=centos6/initrd.img quiet ks=http://10.0.0.8/ksdir/ks6.cfg
label rescue8
menu label Rescue a CentOS Linux system
kernel centos8/vmlinuz
append initrd=centos/initrd.img inst.repo=http://10.0.0.8/centos/8/os/x86_64/ rescue quiet
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
7.测试客户端基于PXE实现自动安装
新准备一台主机,设置网卡引导,可看到看启动菜单,并实现自动安装