一、摘要
本文主要描述如何使用PXE+DHCP+TFTP+kickstart 实现批量自动安装Linux 系统。
二、系统环境
系统平台:RHEL6
服务器:一台DHCP服务器,一台TFTP/HTTP服务器(10.X.X.31),一台裸服务器
系统配置:DHCP和TFTP服务器关闭iptables,selinux
service iptables stop
getenforce //确保输出为“Dsisabled"
三、配置DHCP服务器
1.软件包安装:
yum -y install dhcp
2.复制配置模板文件到DHCP的配置目录中
cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
3.修改/etc/dhcp/dhcpd.conf 配置文件,内容如下:
default-lease-time 7200;
max-lease-time 86400;
log-facility local7;
subnet 10.X.X.0 netmask 255.255.255.0 { //subnet 为DHCP服务器所在网段,根据实际情况更改
range dynamic-bootp 10.X.X.101 10.X.X.200; //分配的IP地址段,根据实际情况更改
option routers 10.X.X.254; //分配的网关,根据实际情况更改
option subnet-mask 255.255.255.0;
next-server 10.X.X.31; //TFTP服务器地址
filename "pxelinux.0"; //PXE启动文件
}
4.启动dhcp服务
service dhcpd start
chkconfig dhcpd on
四、配置TFTP和HTTP服务器
1.软件包安装
yum -y httpd tftp-server syslinux
2.配置httpd服务
cd /var/www/html
wget http://10.X.X.31/repo/ks.cfg //ks.cfg为自动安装配置文件,根据实际安装系统版本选择
mkdir /var/www/html/iso
mount /dev/sr0 /mnt //挂载系统安装镜像文件
cp -r /mnt/* /var/www/html/iso
service httpd start
chkconfig httpd on
3.配置TFTP服务
vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no //此处改为“no"
per_source = 11
cps = 100 2
flags = IPv4
}
启动TFTP服务(tftp服务属于xinetd):
service xinetd start
chkconfig xinetd on
五、配置支持PXE的启动程序
1.软件包安装
yum install -y syslinux
2.配置PXE启动文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /mnt/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
cp /mnt/isolinux/*.msg /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件
vi /var/lib/tftpboot/pxelinux.cfg/default
default ks #默认启动的是 'label ks' 中标记的启动内核
prompt 0 #显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。
timeout 600 #在用户输入之前的超时时间,单位为 1/10 秒。
display boot.msg
label linux #'label' 指定你在 'boot:' 提示符下输入的关键字,比如boot: linux[ENTER],这个会启动'label linux' 下标记的kernel 和initrd.img 文件。
kernel vmlinuz #kernel 参数指定要启动的内核。
append initrd=initrd.img #append 指定追加给内核的参数,能够在grub 里使用的追加给内核的参数,在这里也都可以使用。
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=http://192.X.X.130/ks.cfg initrd=initrd.img #告诉系统,从哪里获取ks.cfg文件
label local
localboot 1
label memtest86
kernel memtest
append -
六、安装注意事项
完成以上步骤后,把裸服务器接入dhcp服务器所在网段进行自动安装
var/lib/tftpboot/pxelinux.cfg/default文件中prompt设置为1时,安装需要手动输入label参数。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论0 条评论