Centos 6.* 下搭建pxe+dhcp+nfs+kickstart

Posted Tale_G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 6.* 下搭建pxe+dhcp+nfs+kickstart相关的知识,希望对你有一定的参考价值。

一、Linux自动安装系统详细工作过程。
技术分享
 技术分享
二、配置PXE网络安装的说明及步骤顺序
1)、配置NFS服务器,用与存放Linux系统的安装文件。 
2)、配置Tftp服务器,用于提供客户端Pxe引导所必须的文件
3)、配置DHCP用于给客户端提供IP地址及其它信息
4)、配置Kickstart,用于自动应答安装
5)、使用PXE功能引导客户机
 
三、安装NFS服务及配置文件共享目录
        把安装介质从光驱或ISO文件复制服务器上的一个目录,可以使用各种网络协议访问它,比如HTTP,FTP和NFS。
1)、创建共享目录,并将光盘内容拷贝到共享目录中。
[[email protected] ~]# mkdir /data/sys -p
[[email protected] ~]# rsync -avz -P /mnt /data/sys/
2)、安装配置NFS,将共享目录发布出去
[[email protected] ~]rpm -qa | grep nfs
[[email protected] ~]yum -y install nfs-utils portmap
[[email protected] ~]echo "/data/sys/ 192.168.0.0/24(ro,sync)" >> /etc/exports
[[email protected] ~]cat /etc/exports 
/data/sys/ 192.168.0.0/24(ro,sync)
3)、NFS、Rpcbind服务启动
[[email protected] ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[[email protected] ~]# /etc/init.d/nfs start
Starting NFS services:                                        [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
4)、及开机自动启动
[[email protected] ~]#chkconfig nfs on
[[email protected] ~]#chkconfig rpcbind on
[[email protected] ~]#chkconfig --list nfs
[[email protected] ~]#chkconfig --list rpcbind
5)、检查目录/data/sys是否被正确共享
[[email protected] ~]# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/data/sys 192.168.0.0/24
 
四、安装配置Tftp服务
        在Pxe安装过程中,客户机通过Tftp协议从Tftp服务下载引导文件并执行。
1)、安装Tftp服务
提示:如果在Yum工具执行前进行下述处理,可以把Yum安装的Rpm包保留下来备用。
[[email protected] ~]# sed -i ‘s#keepcache=0#keepcache=1#g‘ /etc/yum.conf
[[email protected] ~]#tree /var/cache/yum/base/
[[email protected] ~]# yum -y install tftp-server*
 
2)、配置tftp服务
        tftp服务由xinetd服务管理。编辑"/etc/xinetd.d/tftp"文件,将文件中的disable的参数值由yes改为no.
[[email protected] ~]#cat /etc/xinetd.d/tftp 
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot    这里是默认ftfp路径,一会要把启动文件放在这里。
        disable                 = yes    将yes改为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
    从配置文件,可以看出,/tftpboot默认为TFTP服务器的根目录位置,配置完成后重启xinetd服务,使TFTP服务器生效。
[[email protected] ~]#/etc/init.d/xinetd start
Starting xinetd:                                           [  OK  ]
3)、PXE引导配置(bootstrap)
    pxe启动映像文件由syslinux软件包提供,centos linux光盘中已提供,你也可以到syslinux主页,http://syslinux.zytor.com/下载rpm来安装。
    我们只要安装了syslinux(默认已安装),就会生成一个pxelinux.0,将pxelinux.0这个文件复制到“/tftpboot”目录即可:如果没有,可以配置好Yum源,来安装一下:yum -y install syslinux
[[email protected] ~]#cp /usr/share/syslinux/pxelinux.0 /tftpboot
[[email protected] ~]# ll /tftpboot/
total 28
-rw-r--r-- 1 root root 26828 Apr 13 21:06 pxelinux.0
4)、用于网络启动的内核文件
    将Centos安装光盘目录中的”images/pxeboot/{Vmlinux,initrd.img}“启动文件复制到某个安装目录,比如:”/tftpboot“
[[email protected] ~]#cp /mnt/images/pxeboot/initrd.img /tftpboot
[[email protected] ~]#cp /mnt/images/pxeboot/vmlinuz /tftpboot
initrd.img  TRANS.TBL  vmlinuz
[[email protected] tftpboot]# mkdir pxelinux.cfg
[[email protected] tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[[email protected] ~]#cp /data/sys/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[[email protected] ~]#cat /tftpboot/pxelinux.cfg/default
default local    这里选择none为默认安装方式,文本方式为text图形方式为default linux
prompt 1    显示“boot:”提示符。为‘0’时则不提示,将直接启动default参数中指定的内容。
timeout 999999    用户输入之前的超时时间,单位为1/10秒,显示某个文件的内容,注意文件的路径。默认是在/tftpboot目录。也可以类似这样“install /rhel-inst/boot.msg”这样的,路径+文件名
display boot.msg
F1 boot.msg    按下‘F1’这样的键后显示的文件。注意路径。默认是/tftpboot。注:syslinux官方网站上说,目前只能使用F1-F10
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img
label text
  kernel vmlinuz
  append ks=nfs:192.168.2.253:/data/sys/kickstart/ks.cfg initrd=initrd.img text
    这里的nfs:192.168.2.253:/data/sys/kickstart/ks.cfg 为ks.cfg所在的NFS共享路径,后面配置kisckstart时要注意把ks.cfg放到/data/sys/kickstart/ks.cfg
label ks
  kernel vmlinuz
  append ks initrd=initrd.img
label local
  localboot 1
label memtest86
  kernel memtest
  append -
 
#‘label’指定你在‘boot:‘提示符下输入的关键字。如:boot:linux[ENTER]
#这个会启动‘label linux‘下标记的Kernel和Initrd.img文件。
#这里还定义了其它几个关键字:
#boot:text
#boot:ks
#Kernet参数指定要启动的内核。同样要注意路径,默认是/tftpboot目录。
#append指定追加给内核的参数,能够在Gurb里使用的追加给内核的参数,在这里也都可以用。
#使用kickstart安装。可以在ks参数后直接指定kickstart文件的位置。
特别提示:部署无人值守安装,如果配置不当有时也会带来严重负面问题,例如:别人的个人计算机或服务器开机时可能莫名奇妙的直接被安装了你定义的Linux系统。
所以:下面的配置很关键:
default local
prompt 1
timeout 999999
 
五、安装及配置DHCP服务
        在PXE引导安装过程中,PXE客户机通过DHCP服务获取PXE客户机的IP地址、PXE引导文件名称;然后客户机在通过TFTP协议从TFTP服务器下载引导文件并执行,从而启动系统安装程序。
1)、安装DHCP软件包
[[email protected] ~]#yum -y install dhcp*
2)、配置DHCP
    1、修改/etc/dhcpd.conf文件,指定IP地址等信息。
    2、在/etc/dhcp.conf中增加tftp-server需要推送给客户端的启动文件(bootstrap):filename"pxelinux.0";因为tftp的默认目录是/tftpboot,所以文件的绝对路径就是:/tftpboot/pxelinux.0;当然也可以指定为其它路径。
    另外需要指定next-server参数,告诉客户端在获取到pxelinux.0文件之后去哪里获取其余的启动文件:next-server 192.168.2.253;
[[email protected] ~]#vi /etc/dhcpd.conf 
ddns-update-style none;
ignore client-updates;
allow booting;
allow bootp;
default-lease-time 21600;
max-lease-time 43200;
option routers 192.168.2.254;
 
subnet 192.168.2.0 netmask 255.255.255.0 {
        range dynamic-bootp 192.168.2.200 192.168.2.250;
        next-server 192.168.2.253;
        filename "/data/sys/kickstart/ks.cfg";
        next-server 192.168.2.253;
        filename "pxelinux.0";
}
[[email protected] ~]#chkconfig dhcpd on
[[email protected] ~]#ps -ef | grep dhcp 
root     20460     1  0 22:31 ?        00:00:00 /usr/sbin/dhcpd
root     20478 18819  0 22:34 pts/3    00:00:00 grep dhcp
 
六、Kickstart安装配置
        通常我们在安装操作系统的过程中,需要大量的和服务器交互操作,为了减少交互过程,Kickstart就诞生了。使用这种Kickstart,只需要事先定义好一个Kickstart自动应答配置文件Ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该中读取安装配置,这样就避免了在安装过程中多次人机交互,从而实现无人值守的自动化安装。
        生成Kickstart配置文件的三种方法:
        方法1、每安装好一台Linux机器,Linux安装程序都会创建一个Kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的Kickstart配置文件来生成自己的Kickstart配置文件。
        方法2、Linux提供了一个图形化的Kickstart配置工具。在任何一个安装好的Linux系统运行该工具,就可以很容易地创建自己的Kickstart配置文件。Kickstart配置工具命令为redhat-config-kickstart或system-config-kickstart。
        方法3、阅读Kickstart配置文件的手册。用任何一个文本编辑器都可以创建自己的Kickstart配置文件。
[[email protected] ~]#mv anaconda-ks.cfg kickstart/ks.cfg
[[email protected] ~]#cd kickstart/

[[email protected] kickstart]# ls

 

ks.cfg

[[email protected] ~]#vi ks.cfg
# Kickstart file automatically generated by anaconda.
 
install    表示安装系统而不是升级系统
nfs --server=192.168.2.253 --dir=/data/sys        Nfs的安装方式,--Server为Nfs的IP,--Dir为Nfs的共享路径。也可以使用Http方式,如下:Url --Url=Http://192.168.2.253/sys/centos5.8   
key --skip
lang zh_CN.UTF-8或en_US.UTF8    字符集设置
keyboard us    键盘布局
network --device eth0 --bootproto dhcp --hostname localhost.com    网络配置,Eth0为第一块网卡,结尾localhost.com
network --device eth1 --onboot no --bootproto dhcp    也可以同时对第二、三块网卡设置地址。
rootpw    123456    root用户密码,可以使用明文,安装完成变成加密状态。如果使用加密的方式见下
#rootpw --iscrypted $1$Mbhhwc.n$9/X3ksgY6PTg8BP4wyWe71
authconfig --enableshadow --enablemd5    系统认证信息
firewall --disabled    关闭防火墙    enforcing 开启
selinux --disabled     关闭防火墙
timezone Asia/Shanghai    系统系统时间
bootloader --location=mbr --driveorder=sda    系统引导相关配置
firstboot    --disabled    禁止安装后的agent设置
loging    --level=info    设置日志级别
zerombr    清除Mbr引导信息
 
###############分区####################
#clearpart --all --drives=sda    清除sda上的所有分区。如果sda不存在可能报错,还可以用下面的用法
#clearpart --linux
clearpart --all
#part /boot --fstype ext3 --size=100 --ondisk=sda
#part pv.2 --size=0 --grow --ondisk=sda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=50240
##################安装包选择##############
%packages
@admin-tools
@base
@chinese-support
@core
@dialup
@editors
@gnome-desktop
@graphical-internet
@graphics
@java
@legacy-software-support
@printing
@sound-and-video
@text-internet
@base-x
kexec-tools
iscsi-initiator-utils
fipscheck
device-mapper-multipath
sgpio
emacs
libsane-hpaio
xorg-x11-utils
xorg-x11-server-Xnest
 
 
 
 
 
 

以上是关于Centos 6.* 下搭建pxe+dhcp+nfs+kickstart的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7 无人值守服务环境搭建(PXE + DHCP+TFTP+ Kickstart+ FTP)

网络启动二:之PXE:CentOS6.9+TFTP+DHCP+BOIS+UEFI部署操作系统。

搭建PXE与DHCP实现无人值守自动化安装CentOS8系统

PXE+kickstart自动化安装

PXE自动安装CentOS7

Linux centos PXE无人值守安装 DHCP+TFTP+HTTPD+Kickstart