实现基于Centos7的PXE自动化安装centos7,centos6 系统

久未见 提交于 2020-01-06 21:02:20

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

实现基于Centos7的PXE自动化安装centos7,centos6 系统

 

centos 6 ks6_mini.cfg

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
text
reboot
url --url="http://192.168.209.19/centos/6/os/x86_64"
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$GCv0ZPTezB/WrPey$88EAdsXyDjdSXdn8ly/ntjh3DiUyH/UyiFDp72Y1CMsv2EydA3LrEzOHQcKIKtjXUtrtsSkUOPLlC52kRVV4V/
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all
zerombr

part /boot --fstype=ext4 --size=500
part / --fstype=ext4 --size=20000
part /data --fstype=ext4 --size=10000
part swap --size=2048


%packages
%end

%post
cat > /etc/yum.repos.d/test.repo <<EOF
[base]
baseurl=http://192.168.209.19/centos/6/os/x86_64
gpgcheck=0
EOF
%end

centos 7 ks7_mini.cfg

install
keyboard 'us'
rootpw --plaintext centos
url --url="http://192.168.209.19/centos/7/os/x86_64"
lang en_US
auth  --useshadow  --passalgo=sha512
text
firstboot --disable
selinux --disabled
firewall --disabled
network  --bootproto=dhcp --device=eth0
reboot
timezone Asia/Shanghai
bootloader --append="net.ifnames=0" --location=mbr
zerombr
clearpart --all
part / --fstype="xfs" --size=20000
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=2000

%packages
@^minimal
autofs
%end

%post
mv /etc/sysconfig/network-scripts/ifcfg-{ens33,eth0}
sed -i 's@ens33@eth0@g' /etc/sysconfig/network-scripts/ifcfg-eth0
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/test.repo <<EOF
[base]
baseurl=http://192.168.209.19/centos/7/os/x86_64
gpgcheck=0
EOF
%end

pxe 服务器的配置

yum install tftp-server httpd dhcp syslinux -y
systemctl start tftp httpd
systemctl enable tftp httpd 

vim /etc/dhcp/dhcpd.conf
	option domain-name "xuepeng.com";
	option domain-name-servers 180.76.76.76,114.114.114.114;
	default-lease-time 86400;
	max-lease-time 864000;
	subnet 192.168.209.0 netmask 255.255.255.0 {
	range 192.168.209.200 192.168.209.250;
	option routers 192.168.209.2;
	next-server 192.168.209.19;
	filename "pxelinux.0";
	}
	
systemctl start|enable dhcpd

mkdir -p /var/www/html/centos/{6,7}/os/x86_64
添加一块光驱 /dev/sr1
mount /dev/sr0 /var/www/html/centos/7/os/x86_64
mount /dev/sr1 /var/www/html/centos/6/os/x86_64

mkdir /var/www/html/ksdir
vim /var/www/html/ksdir/{ks7_mini.cfg,ks6_mini.cfg}  //在上面单独列出来了

cd /var/lib/lftp/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} .
mkdir centos{6,7}
cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} centos7/
cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinuz,initrd.img} centos6/
mkdir pxelinux.cfg/

vim pxelinux.cfg/default 
	default menu.c32
	timeout 600
	menu title CentOS Auto Install

	label mini 7
	menu label Install CentOS ^Mini 7
	kernel centos7/vmlinuz
	append initrd=centos7/initrd.img ks=http://192.168.209.19/ksdir/ks7_mini.cfg

	label mini 6
	menu label Install CentOS ^Mini 6
	kernel centso6/vmlinuz
	append initrd=centos6/initrd.img ks=http://192.168.209.19/ksdir/ks6_mini.cfg

	label local
	menu default
	menu label Boot form ^local drive
	localboot 0xffff

pxe 客户端的配置

    从网卡启动,选择自己想要安装的选项,即可自动安装系统

总结:

  在vmware中,应关掉虚拟机自带的 dhcp 功能,以免干扰。

  在 default 文件中 指定 vmlinuz ,initrd的路径不能写错,否则有可能报错 “客户机操作系统已禁用cpu,请关闭或重置cpu”。

  关闭 selinux 和 firewalld。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!