前言

pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用。

系统环境准备

系统版本:CentOS release 6.7 (Final)

内网IP:192.168.232.8/24    #用来对内通信,提供pxe+kickstart服务

外网IP:10.220.5.166/24      #连接外网

关闭安全服务

[root@ken ~]# cat /etc/redhat-release     #检查系统版本
CentOS release 6.7 (Final)
[root@ken ~]# service iptables stop #关闭防火墙
[root@ken ~]# setenforce #关闭selinux

下载所需程序

[root@localhost ~]# yum install syslinux dhcp tftp-server xinetd httpd -y

配置dhcp

[root@ken ~]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.232.0 netmask 255.255.255.0 {
range 192.168.232.10 192.168.232.20;
option domain-name-servers 8.8.8.8;
option routers 192.168.232.8;
default-lease-time ;
max-lease-time ;
next-server 192.168.232.8;
filename "pxelinux.0";
}
[root@ken ~]# service dhcpd restart                     #重启dhcpd服务,使之配置生效
Starting dhcpd: [ OK ]
 

配置tftp

[root@ken ~]# vim /etc/xinetd.d/tftp

# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #把yes修改为no,即启动tftp服务
per_source =
cps =
flags = IPv4
}
[root@ken ~]# service xinetd restart #重启xinetd,使之配置生效
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ] [root@ken ~]# chkconfig xinetd on #把xinetd加入系统启动项,实现开机自动启动
[root@ken ~]# chkconfig --list | grep tftp #检查确认tftp是否已经成功开启
tftp: on

复制开机文件到/var/lib/tftpboot

挂载光盘

[root@localhost ~]# mount /dev/cdrom /mnt

进入到tftp的主目录下

[root@localhost ~]# cd /var/lib/tftpboot/

复制images下的虚根文件及内核文件

[root@localhost tftpboot]# cp /mnt/images/pxeboot/vmlinuz ./
[root@localhost tftpboot]# cp /mnt/images/pxeboot/initrd.img ./

复制isolinux下面开机所需的文件

[root@localhost tftpboot]# cp /mnt/isolinux/boot.msg ./
[root@localhost tftpboot]# cp /mnt/isolinux/vesamenu.c32 ./
[root@localhost tftpboot]# cp /mnt/isolinux/splash.jpg ./

创建目录pxelinux.cfg

[root@localhost tftpboot]# mkdir pxelinux.cfg

复制pxelinux.cfg到刚创建的目录之下并改名为default

[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# cp /mnt/isolinux/isolinux.cfg ./default

配置default文件

default linux                                     #更改为linux
#prompt
timeout 10 #时间改短 display boot.msg menu background splash.jpg
menu title Welcome to CentOS 6.7!
default linux
#prompt
timeout display boot.msg menu background splash.jpg
menu title Welcome to CentOS 6.7!
menu color border #ffffffff #
menu color sel #ffffffff #ff000000
menu color title #ffffffff #
menu color tabmsg #ffffffff #
menu color unsel #ffffffff #
menu color hotsel #ff000000 #ffffffff
menu color hotkey #ffffffff #ff000000
menu color scrollbar #ffffffff # label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.232.8/ks/ks6.cfg #指定ks文件位置
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -

复制syslinux提供的pxelinux.0文件到该目录下

[root@localhost pxelinux.cfg]# cd ..
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux. ./

查看该目录下文件,总共有7个文件和目录

[root@localhost tftpboot]# ls
boot.msg initrd.img pxelinux. pxelinux.cfg splash.jpg vesamenu.c32 vmlinuz
[root@localhost tftpboot]# ls |wc -l

把光盘挂载到httpd的网站根目录之下

[root@localhost tftpboot]# cd /var/www/html/
[root@localhost html]# mkdir installtree
[root@localhost html]# mount /dev/cdrom /var/www/html/installtree/

把ks文件复制到网站根目录之下

[root@localhost html]# mkdir ks
[root@localhost ks]# ls
ks6.cfg
[root@localhost ks]# chmod +r ks6.cfg #对ks文件添加读权限

配置ks文件

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
url --url=http://192.168.232.8/installtree
lang en_US.UTF-
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw o #新装机密码为o
reboot
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc 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=
part pv. --grow --size=
volgroup VolGroup --pesize= pv.
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size= --maxsize=
logvol swap --name=lv_swap --vgname=VolGroup --grow --size= --maxsize= repo --name="CentOS" --baseurl=http://192.168.232.8/installtree --cost=100 %packages
@core
@server-policy
@workstation-policy
%end

重启各项服务

[root@localhost ks]# service httpd restart
[root@localhost ks]# service xinetd restart
[root@localhost ks]# service dhcpd restart

开启新的虚拟机进行测试

新的虚拟机需要和服务器在同一个虚拟网络。

pxe+kickstart自动化批量安装系统详解-技术流ken-LMLPHP

开始安装软件包  pxe+kickstart自动化批量安装系统详解-技术流ken-LMLPHP

安装完成

pxe+kickstart自动化批量安装系统详解-技术流ken-LMLPHP

04-24 05:46
查看更多