测试环境:
一、PXE服务器:CentOS7 、vmware 的虚拟机
二、(仅主机模式) 192.168.220.168 内网。在部署环境前,先改为桥接模式。能上网。环境搭建成功后再改为主机模式。
三、执行批量安装的机器最低配置:磁盘>=20G ,内存必须2G ;要求所有设置成仅主机模式。
四、要安装的包: DHCP tftp http syslinux(提供引导文件)html
# systemctl stop firewalld # systemctl disable firewalld # setenforce 0 # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
如在生产环境,建议安装iptables,并设置规则。放行UDP 67 68 69 tcp/80 22端口。linux
# yum install dhcp tftp tftp-server syslinux httpd -y
redis
# mkdir -pv /var/www/html/centos7/x86_64 # mount /dev/cdrom /mnt/ # mount --bind /mnt /var/www/html/centos7/x86_64 #绑定挂载到http默认目录下
#mkdir /var/www/html/ks #cd !$ #vi ks.cfg
内容以下:vim
#version=DEVEL #System authorization information auth --enableshadow --passalgo=sha512 #Use CDROM installation media #cdrom #Install OS instead of upgrade install #Use network installation url --url=http://192.168.220.168/centos7/x86_64 #Use graphical install graphical #Run the Setup Agent on first boot firstboot --enable #ignoredisk --only-use=sda #Keyboard layouts keyboard --vckeymap=cn --xlayouts='cn' #System language lang zh_CN.UTF-8 #Network information network --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto network --hostname=localhost.pkey.cn #Root password rootpw --iscrypted $1$yWDcMXl5$rH8ndJJjZ10w0dIHHx/Mo. #System timezone timezone Asia/Shanghai --isUtc #System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda autopart --type=lvm #Partition clearing information clearpart --none --initlabel %packages net-tools vim wget %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end selinux --disabled reboot
说明:
安装的网络镜像地址: url --url=http://192.168.220.168/centos7/x86_64
安装后的系统密码: rootpw --iscrypted $1$yWDcMXl5$rH8ndJJjZ10w0dIHHx/Mo.
密码能够经过openssl passwd -1 "PASSWORD"
安装后能够在%packages 与其%end之间配置预安装的包,更多好玩的配置请参看redhat官方文档centos
#systemctl start httpd #systemctl enable httpd #netstat -lntp |grep ":80" #查看80端口是否启动,是否是 httpd,并在浏览器上直接输入ip地址,看能不能访问。
#vim /etc/dhcp/dhcpd.conf
内容以下:浏览器
option domain-name "pkey.cn"; option domain-name-servers 192.168.220.1; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.220.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.220.120 192.168.220.129; option routers 192.168.220.1; next-server 192.168.220.168; filename "pxelinux.0"; }
# systemctl start dhcpd # systemctl enable dhcpd # netstat -luntp |grep dhcp #查看服务状态,已经监听在UDP 端口。
安装好tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/ 无须修改,只须要复制一些软件引导文件进来。服务器
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #引导文件 #cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot #内核文件 #cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot #引导菜单 #ls #看没有把文件copy过来。
制件引导默认文件:网络
#mkdir -pv /var/lib/tftpboot/pxelinux.cfg #cd !$ #vi default
内容以下:app
default menu.c32 prompt 5 timeout 30 MENU TITLE CentOS 7 PXE Menu LABEL linux MENU LABEL Install CentOS 7 x86_64 KERNEL vmlinuz APPEND initrd=initrd.img inst.repo=http://192.168.220.168/centos7/x86_64 ks=http://192.168.220.168/ks/ks.cfg
#systemctl start tftp #systemctl enable tftp #ps aux |grep tftp #查看进程有没有启动
测试tftp:dom
#tftp 192.168.220.168 tftp> get chain.c32 tftp> quit #ll #查看有没有把这个文件get 下来。
# init 0
更改网络适配器为仅主机模式。 更改虚拟网络编辑器。(编辑 —> 虚拟网络编辑器),更改成仅主机模式,并取消本地dhcp服务。
#netstat -lnutp # 查看 80端口,是否是开启,查看dhcp服务有没有监听 69端口。 #ps aux |grep tftp #mount /dev/cdrom /mnt/ #mount --bind /mnt /var/www/html/centos7/x86_64