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

相关推荐

  • haproxy实现rabbitmq负载均衡

    RabbitMQ简介: 1、是实现AMQP(高级消息队列协议)的消息中间件的一种。2、主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。 一般提到 RabbitMQ 和消息,都会用到以下一些专有名词:(1)生产(Producing)意思就是发送。发送消息的程序就是一个生产者(produce…

    Linux干货 2017-06-29
  • Linux中的cut、sort、uniq以及用户(组)管理类指令应用示例

    Linux中的cut、sort、uniq指令 列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,只显示一次。 解决思路: 先使用who指令显示出所有已登录的用户。然后对who指令的输出进行切割得到想要的第一列内容,即只包含用户名。可以使用cut指令。最后对cut的结果进行排序并去重。可以使用sort指令。   借助管道符,可以方便的…

    Linux干货 2016-11-13
  • N21沉舟-第八周作业

    1、  请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 #网桥:链接层设备,基于MAC地址过滤。 #集线器:物理层设备,基本都属于半双工模式。集线器与网桥在现在的局域网中基本都不用了。 #二层交换机:工作在数据链路层,基本MAC转发数据,功能齐全的可支持VLAN等功能。常见的有100/1000M、16口/24口/48口。…

    Linux干货 2016-08-24
  • Centos 系列bind搭建DNS服务加固

        在centos系列版本上运用bind搭建dns服务教程已经有很多,先感谢前人做出的贡献,引用两篇博文,讲解的非常详细。 地址是: 主dns搭建:http://blog.csdn.net/reblue520/article/details/52537014 从dns搭建:http://blog.csdn.net/reblue520/…

    Linux干货 2017-04-16
  • Linux基础知识之RAID

    1、什么是RAID?     多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。2、RAID的优点?     提高IO 能力:         磁盘并行读写   &n…

    Linux干货 2016-09-01
  • mysql备份之mysqldump

    mysql备份之mysqldump 注意:备份文件和二进制日志文件不能与mysql放在同一磁盘下 节点1 1、节点1上修改mysql配置文件,开起二进制日志保存 这里我将二进制日志放在/data/mysql/目录下,/data/是我创建的另外一个lvm磁盘,本来想直接放在/data/下,发现无法启动mysql,所以建议还是放在/data/mysql中 [ro…

    Linux干货 2016-07-19

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