pxe自动化安装系统 pxe自动化安装,所需要的服务有:dhcp服务器,tftp服务器,http服务器 pxe自动化安装,所需要的包组及相关安装文件有:syslinux以及自动化安装系统所需的应答文件se
pxe自动化安装,所需要的服务有:dhcp服务器,tftp服务器,http服务器
pxe自动化安装,所需要的包组及相关安装文件有:syslinux以及自动化安装系统所需的应答文件selinux
实验说明:
本次实验以一台CentOS7作为dhcp服务器,tftp服务器,以及http服务器向本网段内的主机提供自动化安装CentOS系统
准备工作:
实验开始:
一、安装dhcp服务、tftp-server服务、httpd服务及syslinux包组
[[email protected] ~]# yum install dhcp tftp-server httpd syslinux -y
二、创建应答文件
1.使用system-config-kickstart生成ks6.cfg
[[email protected] ~]# system-config-kickstart [[email protected] ~]# vim ks6.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation url --url="http://192.168.73.120/centos/6/os/x86_64" # Root password rootpw --iscrypted $1$6oVXZR1R$QOASc6inirmHCZmQ.W9Hg0 # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=200 part / --fstype="ext4" --size=20000 part swap --fstype="swap" --size=1024 %packages @core %end
2.复制ks6.cfg为ks7.cfg,并修改部分参数
[[email protected] ~]# cp ks6.cfg ks7.cfg [[email protected] ~]# vim ks7.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation url --url="http://192.168.73.120/centos/7/os/x86_64" #将url改为7的url # Root password rootpw --iscrypted $1$6oVXZR1R$QOASc6inirmHCZmQ.W9Hg0 # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=ens33 --onboot=on #将网卡名修改为ens33 # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=200 part / --fstype="ext4" --size=20000 part swap --fstype="swap" --size=1024 %packages @core %end
三、配置httpd服务
1.创建http目录
[[email protected] ~]# mkdir -pv /var/www/html/{centos/{6,7}/os/x86_64,ksdir} mkdir: created directory ‘/var/www/html/centos’ mkdir: created directory ‘/var/www/html/centos/6’ mkdir: created directory ‘/var/www/html/centos/6/os’ mkdir: created directory ‘/var/www/html/centos/6/os/x86_64’ mkdir: created directory ‘/var/www/html/centos/7’ mkdir: created directory ‘/var/www/html/centos/7/os’ mkdir: created directory ‘/var/www/html/centos/7/os/x86_64’ mkdir: created directory ‘/var/www/html/ksdir’
2.将CentOS6及7的光盘文件挂在至相关的目录下(工作中可以直接将光盘镜像复制至目录下)
[[email protected] ~]# lsblk | grep sr sr0 11:0 1 10G 0 rom /mnt sr1 11:1 1 3.7G 0 rom [[email protected] ~]# mount /dev/sr0 /var/www/html/centos/7/os/x86_64/ mount: /dev/sr0 is write-protected, mounting read-only [[email protected] ~]# mount /dev/sr1 /var/www/html/centos/6/os/x86_64/ mount: /dev/sr1 is write-protected, mounting read-only [[email protected] ~]# lsblk | grep sr sr0 11:0 1 10G 0 rom /var/www/html/centos/7/os/x86_64 sr1 11:1 1 3.7G 0 rom /var/www/html/centos/6/os/x86_64
3.将准备好的应答文件复制至目录下
[[email protected] ~]# cp ks6.cfg /var/www/html/ksdir [[email protected] ~]# cp ks7.cfg /var/www/html/ksdir
4.启动httpd服务,并设置为开机自动启动
[[email protected] ~]# systemctl start httpd [[email protected] ~]# systemctl enable httpd
四、配置tftp服务器
1.在tftp工作目录下创建出相关的文件目录
[[email protected] ~]# mkdir -pv /var/lib/tftpboot/{kernel{6,7},pxelinux.cfg} mkdir: created directory ‘/var/lib/tftpboot/kernel6’ mkdir: created directory ‘/var/lib/tftpboot/kernel7’ mkdir: created directory ‘/var/lib/tftpboot/pxelinux.cfg’
2.将centos6和centos7的内核及虚拟文件系统复制至tftp工作目录下的相对应kernel目录中
[[email protected] tftpboot]# cd /var/lib/tftpboot/kernel6 [[email protected] kernel6]# cp /var/www/html/centos/6/os/x86_64/isolinux/vmlinuz . [[email protected] kernel6]# cp /var/www/html/centos/6/os/x86_64/isolinux/initrd.img . [[email protected] kernel6]# cd /var/lib/tftpboot/kernel7 [[email protected] kernel7]# cp /var/www/html/centos/7/os/x86_64/isolinux/vmlinuz . [[email protected] kernel7]# cp /var/www/html/centos/7/os/x86_64/isolinux/initrd.img .
3.复制启动相关的文件至tftp工作目录
[[email protected] kernel7]# cd /var/lib/tftpboot/ [[email protected] tftpboot]# cp /usr/share/syslinux/menu.c32 . [[email protected] tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
4.复制光盘上的菜单文件至/var/lib/tftpboot/pxelinux.cfg目录下改名为default,修改此文件
[[email protected] tftpboot]# cp /var/www/html/centos/7/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [[email protected] tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 #将此行改为menu.c32 timeout 600 menu title CentOS install label linux 6 menu label Install CentOS ^6 kernel kernel6/vmlinuz #此处为centos6内核所在的路径 append initrd=kernel6/initrd.img ks=http://192.168.73.120/ksdir/ks6.cfg #指定KS文件在网络中的位置 label linux 7 menu label Install CentOS ^7 kernel kernel7/vmlinuz #此处为centos7内核所在的路径 append initrd=kernel7/initrd.img ks=http://192.168.73.120/ksdir/ks7.cfg #指定KS文件在网路中的位置 label local menu label Boot from ^local drive localboot 0xffff
5.查看下目录结构
[[email protected] tftpboot]#tree . ├── centos6 │?? ├── initrd.img │?? └── vmlinuz ├── centos7 │?? ├── initrd.img │?? └── vmlinuz ├── menu.c32 ├── pxelinux.0 └── pxelinux.cfg └── default
6.启动tftp服务,并设置为开机启动
[[email protected] ~]# systemctl start tftp [[email protected] ~]# systemctl enable tftp
五、配置dhcp服务
1.由于dhcpd默认的配置文件为空,此处将dhcpd的样板配置文件复制后加以修改
[[email protected] ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
2.配置dhcp服务
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf # option definitions common to all supported networks... option domain-name "mylinuxops.com"; #指定预添加域名 option domain-name-servers 114.114.114.114; #指定DNS服务器 default-lease-time 6000; max-lease-time 72000; ...中间省略... # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. #subnet 10.152.187.0 netmask 255.255.255.0 { #注释 #} #注释 # This is a very basic subnet declaration. subnet 192.168.73.0 netmask 255.255.255.224 { range 192.168.73.1 192.168.73.100; #指定dhcp地址池 option routers 192.168.73.254; #指定网关 filename "pxelinux.0"; #指定启动文件 next-server 192.168.73.120; #指定tftp服务器路径 }
3.启动dhcp服务器,并设置为开机自动启动
[[email protected] ~]# systemctl start dhcpd [[email protected] ~]# systemctl enable dhcpd Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
写在最后
以上为pxe自动化安装的全过程,有几点细节需要注意:1.所有服务部署完毕,进行测试之前,确保网络中没有其他的DHCP服务,避免产生干扰。2.centos7在自动化安装时需要1G以上的内存空间。3.安装时注意物理磁盘的大小以及ks文件中的磁盘大小 ,确保有足够的空间进行安装。