利用kickstart实现pxe的自动安装

你还在一台台的手动安装系统吗?

告诉你个偷懒的方法,你会喜欢的!

 

一、

pxe的概念

PXE(preboot execute environment),工作于C/S(客户机服务器)的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络操作系统的启动过程。

pxe优点

1、减少安装时间;

2、没有cannot find or load required file krnl386.exe问题;

3、没有tnt系列显卡16色问题;

4、没有添加了文件和打印共享就出错的问题;

5、没有修改工作站时间死机问题;

6、没有无法正常关机与重启的问题;

 

二、

实验原理

启动过程中,客户终端首先向dhcp服务器申请IP地址,再通过TFTP协议下载一个启动软件包和引导文件到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

 

三、

实验要求:

实现计算机加电后自动安装linux操作系统;

计算机加电后能自动获得IP地址(192.168.10.0/24网段);

计算机加电后,通过FTP上的资源安装linux操作系统;

实现完全脱机安装系统;

利用后安装脚本配置系统主机名(格式:station+ip最后以为.a.com);

利用后安装脚本使系统获得的动态IP转换成静态IP;

启动时禁止sendmail服务和cups服务的启动;

 

四、

实验拓扑图:

 

五、

实验步骤

1、配置yum服务器

当使用pxe自动安装系统时,为了避免安装包的依赖性而影响脱机安装,所以必须使用yum服务器。

编辑yum配置文件

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

2、安装DHCP服务器

DHCP服务器,为用户提供动态IP地址,是实现pxe安装的必要条件。

挂载光盘:

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

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ~]#

安装dhcp

[root@localhost ~]# yum install dhcp

3、配置DHCP服务器

[root@localhost ~]# vim /etc/dhcpd.conf

在底行模式中输入:

:r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample

4、启动DHCP服务

[root@localhost ~]# service dhcpd restart

Shutting down dhcpd:                                       [  OK  ]

Starting dhcpd:                                            [  OK  ]

[root@localhost ~]#

5、开启TFTP

编辑tftp的超级守护进程:

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

重启超级守护进程:

[root@localhost ~]# service xinetd restart

Stopping xinetd:                                           [  OK  ]

Starting xinetd:                                           [  OK  ]

[root@localhost ~]#

6、将驱动和内核拷贝到/tftpboot目录下

切换到tfpt根目录下:

[root@localhost ~]# cd /tftpboot

将pxe的驱动考到/tftpboot目录下:

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

将pxe的内核考到/tftpboot目录下

[root@localhost tftpboot]# cp /mnt/cdrom/p_w_picpaths/pxeboot/vmlinuz ./

将pxe的跟硬件相关考到/tftpboot目录下

[root@localhost tftpboot]# cp /mnt/cdrom/p_w_picpaths/pxeboot/initrd.img ./

[root@localhost tftpboot]#

在/tftpboot目录下创建一个目录pexlinux.cfg

[root@localhost tftpboot]# mkdir -pv pxelinux.cfg

mkdir: created directory `pxelinux.cfg'

[root@localhost tftpboot]#

将光盘上的引导文件拷贝到pexlinux.cfg目录下

用于脱机配置启动时一些其他的交互

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

[root@localhost tftpboot]#

7、配置引导过程中的一些信息

[root@localhost tftpboot]# cd pxelinux.cfg/

[root@localhost pxelinux.cfg]# vim default

8、安装FTP服务器

FTP服务器,为用户提供的网络资源,用于为用户提供linux操作系统的安装包,实现网络安装。

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

启动ftp服务

[root@localhost ~]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@localhost ~]#

9、将linux系统镜像拷贝到ftp的pub目录下

[root@localhost ~]# cp -r /mnt/cdrom/.  /var/ftp/pub

[root@localhost ~]# du -sh /var/ftp/pub

2.9G /var/ftp/pub

[root@localhost ~]#

拷贝成功

10、安装kickstart

[root@localhost ~]# yum install -y system-config-kickstart

11、配置kickstart

后安装脚本代码:

ADDRESS=`ifconfig |grep -i bcast |awk '{print $2}'`
NUM=${ADDRESS##*.}
ADD=${ADDRESS##*:}
sed -i "s/HOSTNAME.*$/HOSTNAME=station$NUM.a.com/" /etc/sysconfig/network
sed -i "s/BOOTPROTO.*$/BOOTPROTO=none/" /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=$ADD" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETWORK=192.168.10.0" >> /etc/sysconfig/network-scripts/ifcfg-eth0

12、编辑ks.cfg

[root@localhost ~]# vim /root/ks.cfg

13、将kickstart形成的引导文件ks.cfg考到ftp的pub目录中

使得用户在连接到FTP后能够获得ks.cfg文件。

[root@localhost ~]# cp /root/ks.cfg /var/ftp/pub

 

六、

测试的结果