利用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
六、
测试的结果