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
下一篇 2015-04-01

相关推荐

  • Linux系统常用命令介绍

    [root@alibaba ~]# ifconfig #查看或者配置网络适配器的接口信息 eth0      Link encap:Ethernet  HWaddr 00:16:3E:0A:7B:2A inet addr:172.18.10.115  Bcast:172.18.15.255  Mask:255.255.240.0 [root@alibaba …

    Linux干货 2018-03-04
  • 命令组合

    1 取出当前已登陆的用户名 2 取出最后登录用户的相关信息 3 取出默认shell最多的的类型   4 转移    [redsun@jiange root]$ sort -t: -k3 -n -r  /etc/passwd | sed -n "1,+3p" | tr 'a-z' …

    Linux干货 2016-11-13
  • Linux 压缩、解压缩和打包工具

        前言:你是否曾经因为某个文件占用空间较大,而空间紧缺的U盘无法存放此文件。你是否曾经因为软件里有太多文件而不方便复制和携带。你是否曾因需要备份太过零散而头疼。那么基于“文件压缩和打包”的技术因此出现。下面介绍下Linux下关于压缩、解压缩和打包的工具及使用。 一、相关术语的原理和意义   &…

    Linux干货 2015-07-15
  • python高阶函数与装饰器

    ##**高阶函数**– 函数是python中的一等公民– 函数也是对象,可调用对象– 函数可以作为普通变量、参数、返回值等等– 数学概念y = g(f(x))– 高阶函数满足以下至少一个条件:1.接收一个或多个函数作为参数 2.输出一个函数 ##**举例(计数器)**def counter(base…

    Linux干货 2017-10-23
  • RPM总结(一)

    软件包基础软件包运行环境硬件、内核、应用程序的关系包管理器程序包管理器Linux不同系统上的包管理器RPM的优点rpm包命名方式一般源代码的命名rpm包的命名rpm包的分类与拆包包管理工具RPM包管理器:程序包管理器:获取程序包的途径:rpm包管理CentOS系统上使用rpm命令管理程序包:安装升级:降级降级实例more 软件包基础 包管理过程中,最常用的操…

    Linux干货 2016-08-24
  • Python之入门篇

    一、环境准备 环境准备 –> pyenv (安装python解释器,管理Python版本,管理python虚拟环境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干货 2017-02-05

评论列表(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的安装