PXE+kickstart实现自动安装centOS6.5

关于PXE

pxe工作于Client/Server的网络模式,客户端在本地没有操作系统的情况下,能够通过网络从服务器端下载到镜像文件和kickstart文件,并基于kickstart文件自动完成系统安装。在为多台服务器部署环境时,通过这种方式批量安装操作系统,大大减少了工作量。

PXE依赖的服务:

1)dhcp:为客户端动态分配IP地址、子网掩码、网关、DNS地址等网络属性;

2)tftp:为客户端提供安装需要的引导程序,内核,ramdisk等文件;

3)http:提供kickstart文件及安装源。

PXE的工作原理:在客户机启动过程中,若本地没有引导程序,最后会通过网卡来作为引导设备,这时会激活网卡上的pxe功能,pxe_client程序被调入内存中执行,广播请求DHCP地址,局域网内的DHCP服务器会予以响应,为其分配地址,子网掩码,网关等各种网络属性配置。客户端再根据DHCP服务器的指示从指定的tftp服务器上下载pxelinux.0文件(pxe启动文档,类似于bootloader),下载完成后加载执行,然后在向服务器请求pxe引导时使用的内核,ramdisk,anaconda程序等,开始安装过程。

在网卡上一般都集成了dhcp和tftp的客户端程序。

部署过程

部署dhcp服务器

[[email protected] ~]# yum install dhcp
[[email protected] ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "baby.org";               #域名搜索列表
option domain-name-servers 114.114.114.114;  #域名服务器地址
default-lease-time 600;                      #默认租约期限(单位秒)
max-lease-time 7200;                         #最大租约期限(单位秒)
log-facility local7;                         #使用rsyslog存储日志

subnet 192.168.3.0 netmask 255.255.255.0 {
  range 192.168.3.10 192.168.3.254;          #地址池
  option routers 192.168.3.1;                #网关
  option broadcast-address 192.168.3.31;     #广播地址
  default-lease-time 600;                   
  max-lease-time 7200;
  next-server 192.168.3.2;                   #下一个访问的服务器地址(tftp)
  filename "pxelinux.0";                     #在next-server上需要下载的文件
}

检查配置信息,然后启动服务:

[[email protected] ~]# service dhcpd configtest
Syntax: OK
[[email protected] ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]

服务已正常运行。

部署tftp服务器

tftp服务有xinetd服务管理,安装完成后在xinetd中开启该服务,重新启动xinetd服务。

[[email protected] ~]# yum install tftp-server
[[email protected] ~]# chkconfig tftp on
[[email protected] ~]# vim /etc/xinetd.d/tftp
service tftp
{
        disable = no                                       #服务已变为可用状态
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

server_args指定了该服务启动的参数,-s指定其工作目录为/var/lib/tftpboot。将客户端需要的文件放置在该目录下即可。

启动服务:

[[email protected] ~]# service xinetd restart
Stopping xinetd:                                           [FAILED]
Starting xinetd:                                           [  OK  ]

服务已正常运行。

部署httpd服务

[[email protected] ~]# yum install httpd

/mnt/flash为光盘的挂载目录,在/var/www/html下创建目录,并将其绑定至/mnt/flash。

[[email protected] ~]# mkdir -pv /var/www/html/centos/6/x86_64
mkdir: created directory `/var/www/html/centos‘
mkdir: created directory `/var/www/html/centos/6‘
mkdir: created directory `/var/www/html/centos/6/x86_64‘
[[email protected] ~]# mount --bind /mnt/flash/ /var/www/html/centos/6/x86_64/

绑定完成后,即可通过/var/www/html/centos/6/x86_64/直接访问/mnt/flash/(安装源路径)。然后启动服务。

[[email protected] ~]# service httpd start

将需要的文件添加至tftp服务目录:

挂载光盘镜像,将需要的文件复制到/var/lib/tftpboot目录下,光盘镜像的挂载目录为/mnt/flash。

[[email protected] ~]# cp /mnt/flash/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[[email protected] ~]# cp /mnt/flash/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
[[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[[email protected] ~]# cp /mnt/flash/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

提供PXE的工作环境(即提供pxelinux.0文件):

[[email protected] ~]# yum install syslinux
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

pxelinux.0在运行过程中会读取vesamenu.c32来显示图形界面,将splash.jpg作为背景图片,vesamenu.c32会读取isolinux.cfg文件显示图形菜单,isolinux.cfg文件必须在pxelinux.cfg目录下,且命名为default。图形菜单如下:

图形菜单默认为第一项,其对应的配置文件为pxelinux.cfg目录下的default文件,修改该文件,为第一项添加启动参数ks,使其在加载内核时能够获取kickstart文件。

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 
..........
..........
label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.3.2/ks_file/ks.cfg text

提供kickstart文件

[[email protected] ~]# cp /root/anaconda-ks.cfg /var/www/html/ks_file/ks.cfg
[[email protected] ~]# chmod +r /var/www/html/ks_file/ks.cfg

可以使用system-config-kickstart来制作一个kickstart文件。步骤很简单,安装system-config-kickstart,键入system-config-kickstart命令启动一个图形界面,配置安装的各项参数,然后生成kickstart文件(跟安装操作系统过程差不多)。

在/root目录下有一个anaconda-ks.cfg文件,该文件即为kickstart文件,里面记录了本地操作系统的各项安装参数等信息。可以对其进行修改然后拿来使用。以下为修改部分:

[[email protected] ~]# vim /var/www/html/ks_file/ks.cfg
text                      #以文本界面安装
reboot                    #安装完成后自动重启
selinux --disabled        #禁用selinux
.....
 #以下是磁盘分区内容
clearpart --all --drives=sda
 
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1
volgroup vg_node1 --pesize=4096 pv.008002
logvol /home --fstype=ext4 --name=lv_home --vgname=vg_node1 --grow --size=100
logvol / --fstype=ext4 --name=lv_root --vgname=vg_node1 --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=vg_node1 --grow --size=1984 --maxsize=1984
 
url --url="http://192.168.3.2/centos/6/x86_64"
repo --name="CentOS"  --baseurl=http://192.168.3.2/centos/6/x86_64  --cost=100

上面的repo参数指定了安装源路径,将其指向httpd服务器上的光盘镜像路径。

测试是否可用

在该网段内部署一台没有操作系统的虚拟机,然后启动。也可以设置某台虚拟机的第一引导设备为网卡。

引导界面

找到安装源

安装软件包过程

完成测试.................^_^

时间: 2024-08-01 11:08:37

PXE+kickstart实现自动安装centOS6.5的相关文章

PXE+Kickstart无人值守自动安装系统

安装系统的方式 1.光盘安装2.U盘安装3.网络安装.......都不够方便快捷. Redhat系主要有两种Kickstart和Cobbler. Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写.所以,如果ks.cfg文件涵盖了安装过程中所有

基于PXE,kickstart实现通过网络自动安装CentOS6.5

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包

Kickstart+PXE实现无人值守自动安装

配置前提 kickstart 在启动引导内核的时候只有传递给其vmlinuz即可,前提是必须让其内核访问的到我们的ks的位置,比如http . ftp.nfs 等,也可以放在本地的路径下可以通过cdrom进行对外告知 如果要通过网络服务器访问,有个前提就是必须将其配置好网络地址才可以:但还需要考虑一个问题,当anaconda启动的时候 它还会读取kickstart配置文件的 但kickstart中也可以配置网络参数的,如果kickstart分配的地址与vmlinuz所获取的不一样的话,则以后续的

PXE+HTTP+tftp+kickstart 网络自动化安装centos6.5

基本流程: 1.网卡作为可引导的启动设备 2.BIOS找到引导设置网卡,激活网卡的PXE功能 3.客户端通过PXE的内置dhcp客户端尝试DHCP广播请求,从DHCP服务器获取IP地址.掩码.网关.网络属性 4.DHCP服务器告知客户端tftp服务器地址(next-server),将 "filename "pxelinux.0";" 参数中指定的文件(pxelinux.0)推送给客户端: 5.PXE的内置tftp客户端到指定tftp服务器下载启动镜像文件pxelin

Pxe+Kickstart 无人职守安装

一.Pxe+ Dhcp + Tftp + Apache + Kickstart 简介. 1.)PXE: 可以提供网络接口的中间层,负责串联起tftp,dhcp,httpd,.Pex不依赖磁盘,而是通过网络找到tftp引导内核装载,找到httpd根据Kickstart配置文件内找到对应的软件包,并且为客户机通过dhcp动态分配IP地址. 2.)DHCP: UDP协议,67端口,通过配置地址池为客户机自动分配IP地址,通过租约来控制IP地址合理使用. 3.)TFTP: UDP协议,69端口,一种小型

自建DHCP TFTP服务 用PXE启动实现无人值守安装Centos6

1.安装DHCP TFTP yum -y install dhcp tftp-server tftp 2.配置DHCP文件 cat > /etc/dhcp/dhcpd.conf << EOF # option domain-name "dwhd.org"; #设置DHCP的DNS option domain-name-servers 172.16.0.1,114.114.114.114; #设置DHCP 分配出去的IP超时时间 单位秒 default-lease-ti

构建PXE环境--网络自动化安装CentOs6.5

一.构建PXE环境实验 1.当前系统版本 2.查看网络环境和yum源 当前系统的IP是192.168.1.60,子网掩码是255.255.255.0,默认网关是192.168.1.1 本次实验使用的yum源是本地光盘,构建过程如下: (1)挂载本地光盘(已做成yum仓库的)到/media/centos6.5_DVD1目录下     (2)在/etc/yum.repos.d/目录下新建yum的配置文件local.repo,并编辑该配置文件,指定yum源在本地光盘上 3.安装并启动DHCP服务 (1

如何利用PXE+kickstart实现批量安装系统

PXE网络快速自动安装系统,以下实验环境均在RedHat 7.2 配置PXE网络装机服务器,为了避免防火墙与selinux的干扰,改为信任以及宽松模式 1. 将防火墙状态设置为trusted 2.SELinux当前修改为permissive 3.SELinux永久状态修改为permissive 步骤一:构建DHCP服务,使客户端自动获取ip, 1. 服务器添加虚拟磁盘 2. 把光盘挂在在/mnt目录下 mount  /dev/cdrom  /mnt/ 3.  由于该服务器上没有对应的yum仓库,

PXE结合Kickstart实现无人值守安装CentOS6.5

简介 PXE:Pre-boot execution Environment,预启动执行环境,是由Inte公司开发的网络引导技术,工作在 Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统 安装条件 1.客户机的网卡支持PXE协议(集成 BOOTROM芯片),且主板支持网络引导.目前绝大多数服务器和大多数PC都能够提供此支持,只需在BIOS设置中允许从Network或LAN启动即可2.网络中有一台DHCP服务器以便为客户机自动分配地址.指定引