Linux基于PXE实现系统全自动无人值守安装


前言

在生产环境中,我们时常会需要在多台客户端主机或服务器安装操作系统,如果每一台都去手动安装,费时费力,显然是不现实的。那么,如何高效的完成此类工作呢?文将讲解如何实现Linux系统的全自动无人值守安装。


提供PXE服务所需安装包

dhcp:动态主机配置协议,给客户端提供ip地址

tftp-server:tftp服务器端,提供系统安装所需文件

xinetd:tftp服务超级守护进程,用于唤醒tftp服务

httpd:基于http服务提供安装源

syslinux:提供pxelinux.0文件,此文件用于引导系统,相当于bootloader

安装所需安装包

1.jpg

dhcp服务配置

dhcp服务的配置文件默认是/etc/dhcp/dhcpd.conf,但此文件默认是没任何配置的,此服务提供了一个参考文件/usr/share/doc/dhcp*/dhcpd.conf.sample,复制此文件覆盖原配置文件,直接修改即可。

2.jpg

#option domain-name "scholar.com";             #分配dns域
#option domain-name-servers 172.16.10.10;      #分配dns地址

#default-lease-time 600;                       #默认租约时长
#max-lease-time 7200;                          #最大租约时长
#以上为dhcp全局配置,如果仅为实现PXE可默认
subnet 172.16.0.0 netmask 255.255.0.0 {        #提供dhcp服务的网段
  range 172.16.10.20 172.16.10.100;            #地址池
  option routers 172.16.0.1;                   #网关
  next-server 172.16.10.10;                    #tftp服务器地址
  filename "pxelinux.0"                        #PXE引导文件
}
#以下仅为介绍dhcp特殊配置,无需要可不配置
#host winxp {                                  #设置保留专用地址
#  hardware ethernet 00:0c:29:50:29:02;        #保留主机物理地址
#  fixed-address 172.16.100.2;                 #保留地址,非地址池内地址,优先分配
#}

dhcp服务配置完成,测试配置无语法错误后,启动服务并设置开机自启

3.jpg

dhcp工作在upd的67端口,启动服务后,可查看67端口是否开启

4.jpg

tftp服务配置

xinetd是tftp的超级守护进程,即tftp是xinetd的子服务,修改配置文件,确保tftp服务没有被禁用。

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

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no   #确保此项为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

修改完配置文件,启动xinetd进程并设置tftp服务开机自启

4.1.jpg

tftp工作在udp的69端口,启动服务后,可查看69端口是否开启

4.2jpg.jpg

注意:请将防火请关闭或设置相关规则允许访问69端口,不然将无法访问tftp服务。

提供引导内核等文件

从挂载的光盘中复制PXE所需文件到tftp工作目录下(默认为/var/lib/tftpboot)

5.jpg

提供PXE工作环境

复制pxelinux.0文件(由syslinux包提供,需提前安装)到tftp工作目录

6.jpg

提供安装源

可提供安装源的服务有很多,例如:http、ftp、nfs等,我们就基于http服务实现此操作。在http服务默认的工作目录里创建一个专为安装源所使用目录,并将之与已挂载的光盘目录绑定。

7.jpg

启动http服务并设置开机自启,http服务工作在tcp的80端口,启动服务后,可查看80端口是否开启

8.jpg

提供kickstart文件

kickstart文件可以自己创建(需安装system-config-kickstart.noarch工具),也可以复制系统文件直接修改。这里我们就不演示创建过程了,直接复制文件修改(此文件为/root/anaconda-ks.cfg)

9.jpg

#修改或添加以下两项,目标指向安装源
url --url=http://172.16.10.10/RHEL6.6
repo --name="Redhat" --baseurl=http://172.16.10.10/RHEL6.6 --cost=100

为了启动时能够加载kickstart文件,还需要修改/var/lib/tftpboot/pxelinux.cfg/default文件,添加ks文件的位置。

[root@scholar ~]# 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://172.16.10.10/ks.cfg     #指向ks文件

启动测试

将待装系统的主机设置为网卡启动

10.jpg

开机开始引导

11.jpg

引导成功开始安装各种包

12.jpg

安装成功,查看IP地址

13.jpg

The end

好了,以上便是基于PXE实现系统全自动无人值守安装的整个过程,如果在引导时出现无法下载kickstart文件的情况,请检查网络内有无dhcp冲突,或selinux是否关闭。仅为个人学习整理,如有错漏,大神勿喷~~~

原创文章,作者:书生,如若转载,请注明出处:http://www.178linux.com/2264

(1)
上一篇 2015-04-01 21:22
下一篇 2015-04-01 22:07

相关推荐

  • N25第一周作业

    个人习惯用导图写的作业

    Linux干货 2016-12-04
  • bash基础特性的应用

    1:使用命令行展开功能来完成以下练习:     (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d ~]# touch  /tmp/{a_{c,d},b_{c,d}}     (2)、创建/tmp/mylinux目录下的:      mkdir…

    Linux干货 2016-11-06
  • 关于RHEL6中ulimit的nproc限制

    ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚…

    Linux干货 2016-10-19
  • Linux用户和组的基础概念

    用户,组和权限管理   Multi-tasks,  Multi-Users 每个使用者:    用户标识,密码:    认证:Authentication    授权:Authorization    审计:Audition    3A 组…

    Linux干货 2016-12-21
  • liunx文本处理三剑客及文本处理工具的使用与练习。

    linux文本处理三剑客: grep ==擅长过滤,把想要的或者不想要的分离开。linux三剑客 老三  -A: 除了显示匹配的一行之外,并显示该行之前的num行;-B:除了显示匹配的一行之外,并显示该行之后的num行;-C:除了显示匹配的一行之外,并显示该行之前后各num行     sed==擅长取行、替换。三剑客老…

    2017-07-28

评论列表(5条)

  • stanley
    stanley 2015-04-01 21:36

    格式做了微调,可以对比参考下。文章有图有文详尽清晰,如果能加上qa过程和原理描述会更上一层楼

    • 书生
      书生 2015-04-01 21:45

      @stanleyqa是啥

    • stanley
      stanley 2015-04-01 21:53

      @书生测试

    • 书生
      书生 2015-04-01 22:00

      @stanley呃 最后测试安装的时候 一直卡在找kickstart文件那 找了一大顿 最后发现是受路由的dhcp的影响 醉了…

    • stanley
      stanley 2015-04-02 09:49

      @书生是的,同网络多个dhcp服务器对ks的影响非常大 ,有时间也可以尝试下windows的安装