linux kickstart

Table of Contents

  • 1 Redhat linux kicstart
    • 1.1 基本的原理 DHCP+TFTP+(NFS+FTP+HTTP)+Kickstart+PXE
      • 1.1.1 pxe的原理
      • 1.1.2 dhcp的原理
      • 1.1.3 TFTP的原理
      • 1.1.4 基本的流程
    • 1.2 安装以下软件包
    • 1.3 具体配置如下;
      • 1.3.1 DHCP的配置
      • 1.3.2 ftp的配置
      • 1.3.3 Kickstart脚本的配置
      • 1.3.4 TFTP的配置
    • 1.4 重启各项服务。
    • 1.5 注意关闭防火墙与把sulinux变成警告模式
    • 1.6 安装截图

1 Redhat linux kicstart

 

1.1 基本的原理 DHCP+TFTP+(NFS+FTP+HTTP)+Kickstart+PXE

 
1.1.1 pxe的原理

PXE是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程

1.1.2 dhcp的原理

动态主机配置协议是一个局域网的网络协议,使用UDP协议工作 主要有两个用途:1. 给内部网络或网络服务供应商自动分配IP地址给用户。2. 给内部网络管理员作为对所有计算机作中央管理的手段。 四个过程:dhcpdiscover->>dhcpoffer->>dhcprequest->>dhcpack

1.1.3 TFTP的原理

TFTP(TrivialFileTransferProtocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。

1.1.4 基本的流程
  • 1、pxe启动,就去广告寻找dhcp服务器获取ip地址pxelinux.0文件
  • 2、client通过tftp连接到服务器,下载pxelinux.0文件。
  • 3、client下载成功pxelinux.0文件后,系统还会下载控制pxelinux.0的配置文件,叫default。然后client就会按照default的配置来执行pxelinux.0文件。
  • 4、现在client端会在获取一次IP地址。并且根据DHCP服务器配置文件找到kickstart配置文件并下载。也是使用的tftp协议。
  • 5、pxelinux.0文件定义的想服务器请求linux内核,根文件系统之类的参数。运行这个文件,client就会向服务器请求相关的文件并下载,都里使用的都是tftp协议。
  • 6、文件下载成功后,client就会启动linux内核,这就进入了我们安装时候看见的第一个图形界面,这个界面和自己安装看见的第一个画面一样,回车就是图形安装,输入text就是文本安装那里。如果使用了kickstart,这个界面消失很快,可能看不见。到这里PXE启动就完成了。
  • 7、下面就该主角kickstart出场了。其实kickstart在第四步已经出现了,当按照default要求运行pxelinux.0文件,系统读取内核,挂在根文件系统以后,的任务就都交给了kickstart了。包括安装介质来源、语言、时区、分区、安装哪些包等,都是在kickstart文件中定义。只要进入这一步,kickstart配置文件正确,我们的无人值守安装已经成功了。

1.2 安装以下软件包

  • 安装DHCP软件包
    [root@localhost ~]# yum install dhcp*
    
  • 安装TFTP软件包
    [root@localhost ~]# yum install tftp*
    
  • 安装Vfstpd软件包
    [root@localhost ~]# yum install vfstpd
    
  • 安装Kickstart
    [root@localhost ~]# yum install system-config-kickstart
    

1.3 具体配置如下;

 
1.3.1 DHCP的配置
  • 首先vim /etc/dhcp/dhcpd.conf 我们将看到的是一个空的配置文件如下:
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#
  • 此时我们在vim编辑器的指令模式下执行一下命令:
: r  /usr/share/doc/dhcp*/dhcpd.conf.sample
  • 帮我们调入配置文件,我们只需要修改其中的几行,就可以为我们所用。
36
37subnet192.168.52.0netmask255.255.255.0{
38 range192.168.52.100192.168.52.200;
39 optionrouters192.168.52.147;
40}
41next-server192.168.52.147;
42filename"/pxelinux.0";
  • 到此我们的DHCP服务器已经配好了。
[root@localhost ~]# service dhcpd restart
1.3.2 ftp的配置
  • 配置ftp服务器 简单期间我们就利用ftp的匿名模式,把我们的镜像文件拷贝到/var/ftp/pub目录。至于ISO文件的挂载我们就不去讨论了。
    [root@localhost mnt]# cp -rf * /var/ftp/pub/
    
  • 此时我们可以执行一条脚本监测我们的拷贝进行到什么程度
    [root@localhost Desktop]$ watch -n 1 du -sh /var/ftp/pub/
    

……等待拷贝完成!

1.3.3 Kickstart脚本的配置
  • 这是Redhat提供的一个安装的脚本工具,我们安装好以后只需要配置即可。
    [root@localhost ~]# system-config-kickstart 
    
  • 程序自动的启动了一个图像化的配置界面。如下图所示:

  • 配置界面

……

  • 填好以后保存,默认会生成一个ks.cfg 的文件。此时我们就可以按照自己的要求来对kickstart 脚本进行修改,已满足自己的要求。

注意 %pre 与 %post

1.3.4 TFTP的配置
  • 进入tftp的服务器的默认配置路径(这是RHEL6.0的默认路径)
    [root@localhost~]#cd/var/lib/tftpboot/
    
  • 找到pxelinux.0文件并拷贝到当前目录。
    [root@localhost~]#find / -name pxelinux.0
    
  • 由于我们要制作系统引导文件,所以必须拷贝ISO文件中的isolinux文件中的所有文件到tftp的目录中。
    cp/var/ftp/pub/isolinux/*.
    
  • 我们还得做点修改,建立文件夹,并拷贝pxelinux.0文件到此目录并命名为default,修改权限777
    mkdir pxelinux.cfg
    
    cp pxelinux.0 /pxelinux.cfg/default
    
    chmod 777 default
    
  • 再次文件中我们必须进行必要的修改
    label linux
    menu label ^Install Boxue  system
    menu default
    kernel vmlinuz
    append initrd=initrd.img ks=ftp://192.168.52.147/ks.cfg
    
   - 上述修改为配置计算机在进行引导界面,并把修改好的文件拷贝到ftp服务器上。
cp /root/ks.cfg /var/ftp/

1.4 重启各项服务。

[root@localhost ~]# /etc/init.d/network restart
[root@localhost ~]# /etc/init.d/vsftpd restart
[root@localhost ~]# /etc/init.d/dhcpd restart
[root@localhost ~]# chkconfig xinetd on
[root@localhost ~]# chkconfig tftp on
[root@localhost ~]# service xinetd start

1.5 注意关闭防火墙与把sulinux变成警告模式

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce 
Permissive

1.6 安装截图