kickstart自动安装原理

  简单的讲就是:让系统在安装过程中从一个ks.cfg 配置文件中自动获取所有需要配置的参数。PXE(proboot execute environment,预启动执行环境)技术,基于C/S网络模式,需要nfs服务进行远程连接,在启动过程中,客户机要求分配IP,这里用到dhcp服务,客户端从服务端下载镜像,再由tftp协议下载启动配置,从而引导操作系统的安装。(以上网络服务可以由其他类似服务替代)

我的设备:centOS6.5

我的IP:192.168.152.148(以下设定需要根据自己的IP套

所有的配置均在服务机上。

1.挂载光盘

1)开启centos;

2)载入一个ISO映像文件:虚拟机-->设置-->CD/DVD-->使用ISO映像文件,保存确定。这里的ISO文件是安装centos的光盘

kickstart+PXE+NFS自动化安装部署_centos

3)挂载光盘,mount查看当前挂载。

[root@localhost ~]# mount
/dev/sr0 on /media/CentOS_6.5_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
[root@localhost ~]# mount /dev/sr0 /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# mount
s,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
/dev/sr0 on /mnt type iso9660 (ro)

2.配置tftp服务

1)yum 安装,启动服务

[root@localhost ~]# yum -y install tftp*
[root@localhost ~]# vim /etc/xinetd.d/tftp
disable             =  no   #进入配置文件,将disable 改为no,表示启用

2)把光盘文件和复制到tftp中,以供客户端下载

寻找系统安装引导文件

[root@localhost ~]# find / -name "pxelinux.0"

如果没有找到就要安装syslinux

[root@localhost ~]# yum -y install syslinux

重新寻找可发现目录

[root@localhost ~]# find /  -name  "pxelinux.0"
/usr/share/syslinux/pxelinux.0

将此文件拷贝到/var/lib/tftpboot目录下

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

进入该目录

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

将光盘文件复制到该目录下

[root@localhost tftpboot]# cp /mnt/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}  .

在该目录下创建pxelinux.cfg目录,并将光盘文件复制进入,重命名为default

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

修改default文件,在label linux上面加一行,这是启动的时候引导的加载系统的菜单

label centos6.5
kernel vmlinuz
append ks=nfs:192.168.152.148:/centosinstall/ks.cfg ksdevice=eth0 initrd=initrd.img

3)启动tftp

[root@localhost ~]# /etc/init.d/xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

3.配置nfs服务

1)yum 安装

[root@localhost ~]# yum -y install nfs*

2)修改配置文件/etc/exports

[root@localhost ~]# vim /etc/exports 
/centosinstall    *(rw,sync)

3)创建/centosinstall目录将光盘文件拷贝到此目录下

[root@localhost ~]# mkdir /centosinstall
[root@localhost ~]# cd /centosinstall/
[root@localhost centosinstall]# nohup cp /mnt/* . -a&           #后台拷贝

4)配置/centosinstall/ks.cfg文件;此文件是kickstart的配置文件,和/root目录下anaconda-ks.cfg类似,是系统安装的主要自定义配置文件,用户通过修改此文件来设定机器安装系统的配置、磁盘分区等,可以根据自己的需要配置,以@开头的是系统安装的软件包,可以适当删减

[root@localhost centosinstall]# vim ks.cfg              #复制以下内容
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=192.168.152.148 --dir=/centosinstall
# Root password
rootpw  123456
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# 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
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1
volgroup vg_kickstart6 --pesize=4096 pv.008002
%packages
@additional-devel
@base
@basic-desktop
@compat-libraries
@console-internet
@desktop-debugging
@desktop-platform
@development
@fonts
@ftp-server
@general-desktop
@graphical-admin-tools
@graphics
@input-methods
@internet-applications
@internet-browser
@kde-desktop
@legacy-x
@remote-desktop-clients
@x11
%end

5)开启服务

[root@localhost centosinstall]# /etc/init.d/nfs restart    
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

4.配置dhcp服务

1)yum 安装

[root@localhost ~]# yum -y install dhcp*

2)修改配置文件/etc/dhcp/dhcpd.conf

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf       #复制以下内容
ddns-update-style interim;
ignore client-updates;
next-server 192.168.152.148;
filename "pxelinux.0";
allow booting;
allow bootp;
subnet 192.168.152.0 netmask 255.255.255.0{
# --- default fateway
option routers       192.168.152.1;
option subnet-mask   255.255.255.0;

range dynamic-bootp 192.168.152.100 192.168.152.200;

host ns {
hardware ethernet 00:1a:a0:2b:38:81;
fixed-address 192.168.152.101;}
}

3)启动服务

[root@localhost ~]# /etc/init.d/dhcpd restart
Starting dhcpd:                                            [  OK  ]

5.启动客户机

虚拟机--> 文件--> 新建虚拟机--> 典型--> 稍后安装系统--...-->完成-->开启虚拟机

出现以下页面,说明客户机已经搜索到服务机

kickstart+PXE+NFS自动化安装部署_PXE_02

输入centos6.5  回车,出现以下画面

kickstart+PXE+NFS自动化安装部署_kickstart_03


这时你的机器会有点卡,这里如果弹出选项或者报错,说明配置有问题,可以检查修改配置过程,重启服务,后Ctrl+c重启安装。如果no news,证明已经开始在配置网络、下载文件了。稍等几分钟,会出现下面画面

kickstart+PXE+NFS自动化安装部署_PXE_04


已经是自动化安装了,整个过程不需要任何选项,安装完毕即可。