Kickstart

基本介绍:

linux下的网络批量无人值守安装linux操作系统。

所有系统的网络安装和无人职守安装都是基于PXE,当然linux下的无人职守安装也是基于PXEPreboot Execution Environment,远程引导技术)技术.同于依耐大量linux服务,最主要的服务包括,kickstart(通过预先设置的脚本,按要求安装系统),dhcpd(很重要,负责pxe启动,还有定义tftp服务器地址kickstart文件位置),nfsyumvsftp(为安装提供安装介质),tftppxe启动文件传输的通道),dns(如果需要给新安装的机器设置主机名就需要)。

原理:

1pxe启动,就去广告寻找dhcp服务器获取ip地址pxelinux.0文件

2client通过tftp连接到服务器,下载pxelinux.0文件。

3client下载成功pxelinux.0文件后,系统还会下载控制pxelinux.0的配置文件,叫default。然后client就会按照default的配置来执行pxelinux.0文件。 

4、现在client端会在获取一次IP地址。并且根据DHCP服务器配置文件找到kickstart配置文件并下载。也是使用的tftp协议。 

5pxelinux.0文件定义的想服务器请求linux内核,根文件系统之类的参数。运行这个文件,client就会向服务器请求相关的文件并下载,都里使用的都是tftp协议。 

6、文件下载成功后,client就会启动linux内核,这就进入了我们安装时候看见的第一个图形界面,这个界面和自己安装看见的第一个画面一样,回车就是图形安装,输入text就是文本安装那里。如果使用了kickstart,这个界面消失很快,可能看不见。到这里PXE启动就完成了。 

7、下面就该主角kickstart出场了。其实kickstart在第四步已经出现了,当按照default要求运行pxelinux.0文件,系统读取内核,挂在根文件系统以后,的任务就都交给了kickstart了。包括安装介质来源、语言、时区、分区、安装哪些包等,都是在kickstart文件中定义。只要进入这一步,kickstart配置文件正确,我们的无人值守安装已经成功了

整个过程都是通过TFTP传输数据 端口号69

一、环境搭建

1、一台server担任启动服务器和安装服务器

2、一台client,需要能从网卡启动

3、两台机器在同一局域网

4、服务器要有安装所需的所有包

5Kickstart服务器的IP地址为192.168.0.1 

二、配置

1、配置IPyum等基本配置

2、安装Kickstart所需的包

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

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

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

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

3DHCP的配置

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

ddns-update-style none;

        option routers                  192.168.0.1;

        option subnet-mask              255.255.255.0;

        option domain-name-servers      192.168.0.1;

        option time-offset              -18000; 

        default-lease-time 21600;

        max-lease-time 43200;

subnet 192.168.0.0 netmask 255.255.255.0 {

        range 192.168.0.128 192.168.0.254;

        filename "pxelinux.0";

        next-server 192.168.0.1;

}

4tftp的配置

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

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

[root@localhost ~]# service xinetd restart

[root@localhost ~]# cp /media/isolinux/vmlinuz /tftpboot/

[root@localhost ~]# cp /media/isolinux/initrd.img /tftpboot/

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

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

[root@localhosttftpboot]#cp/media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default

prompt 1

timeout 600

label linux

  kernel vmlinuz

  append ks=ftp://192.168.0.1/pub/ks.cfg  initrd=initrd.img

五、图形生成Ks.cfg文件

[root@localhost ~]# system-config-kickstart

[root@localhost ~]# vim ks.cfg (加上 key --skip

[root@localhost ~]# chmod 754 ks.cfg

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

六、启动服务

[root@localhost ~]# service dhcpd restart

[root@localhost ~]# chkconfig dhcpd on

[root@localhost ~]# service vsftpd restart

[root@localhost ~]# chkconfig vsftpd on

七、测试

客户端从网络启动