PXE自动化安装系统服务

PXE

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成客户端的基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。

PXE自动安装系统所需组件

1、DHCP服务

DHCP动态主机配置协议会在预引导加载操作系统的时候动态自动分配一个IP地址,同时完成网络加载的主机的设定;需要在其地址池subnet配置中配置一下参数:
filename "";:基于网卡引导时要加载的initial  boot file的文件名;
next-server HOST;:要是一个tftp-servr,简单文件传输协议

2、tftp-server服务

TFTP:trivialfile transfer protocol,简单文件传输协议服务器。基于UDP文件传输,一般该服务器仅用于PXE预引导加载环境。用于提供预引导加载文件pxelinux.0的读取。相关程序包:Server:tftp-server;Client: tftp,监听端口 69/udp,
安装tftp程序
    ]# yum install tftp-server tftp
默认的提供文件服务的根目录:
    /var/lib/tftpboot/
服务启动运行方式:
    CentOS6:
        # chkconfig tftp on
        # service xinetd restart
    CentOS7:
        # systemctl start tftp.socket

3、syslinux包

提供适用于不同的操作系统的各种bootloader文件,支持DOSFATfilesystems、Linux ext2/ext3 ,filesystems(EXTLINUX)、 PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于网卡引导的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0

4、file server(yum repository)yum仓库

基于网络引导加载文件的时候会根据脚本,引导到指定的路径加载yum仓库进行安装程序或者镜像文件,存储此yum仓库的位置称为file server。该file server可以通过http对外通过程序包或者镜像,实现引导之后的安装操作。 file server可以creatrepo命令手动创建;可以直接复制或者挂载光盘的完整镜像作为通过程序包的文件存储源服务

基于PXE自动安装系统服务配置(CentOS 7)

环境为CentOS 7系统,自动化安装的系统镜像为CentOS 7
1、安装相关程序包
]# yum install httpd -y 安装httpd服务 为了提供安装程序包路径
]# yum install tftp-server -y 安装tftp服务
]# yum install syslinux -y 安装提供pexlinux.0文件的程序包
]# yum install  dhcp -y 安装dhcp服务
2、准备file server(yumrepository):yum仓库
]# mount /dev/cdrom /media 挂载Centos7 光盘镜像   
]# mkdir /var/www/html/centos7  创建安装程序文件放置位置

]# cp anaconda-ks.cfg /var/www/html/ 将配置好的kickstart文件复制到安装程序文件目录,这里我直接使用了当前系统的文件
]# chmod 666 /var/www/html/anaconda-ks.cfg 给文件加权限
]# vim /var/www/html/anaconda-ks.cfg 编辑kickstart文件
    url --url="http://192.168.25.128/ anaconda-ks.cfg
]# mount -o --bind/media/cdrom /var/www/html/centos7 通过目录绑定的方式挂载光盘镜像


 注意:也可以使用
3、提供预引导加载等相关文件
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 复制pxelinux.0文件到tftp服务的文件目录
]# cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ 复制内核启动文件到tftp文件目录
]# cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/ 复制与pxe启动和加载相关的文件
4、配置tftp文件
tftpboot]# mkdir pxelinux.cfg 在/var/lib/tftpboot目录下创建pxelinux.cfg目录为
]# vim /var/lib/tftpboot/pxelinux.cfg/default 创建为menu.c32提供菜单的配置文件,即菜单加载时用到的配置文件信息
    default menu.c32
        prompt 5 菜单显示时间
        timeout 30 退出时间
        MENU TITLE CentOS 7 PXE Menu 标题

        LABEL linux 标签
        MENU LABEL Install CentOS 7 x86_64 菜单名
        KERNEL vmlinuz 指明要加载的内核文件
        APPEND initrd=initrd.img inst.repo=http://192.168.25.128/centos7 ks=http://192.168.25.128/anaconda-ks.cfg 
            指明initrd文件位置,和安装程序所在的yum仓库和kickstart文件路径

5、配置dhcp文件

]# cd /etc/dhcp/
]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf 复制配置文件
]# vim dhcpd.conf 编辑dhcp配置文件,如下,
    subnet 192.168.25.0 netmask 255.255.255.0 {
        range 192.168.25.100 192.168.25.105;
        filename "pxelinux.0";
        next-server 192.168.25.128; 此处指向tftp服务地址,这里是本机
    }
:.,$d vim命令行删除subnet配置段以后所有无用配置
6、启动服务
]# systemctl start httpd
]# systemctl start dhcpd.service
]# systemctl start tftp.socket
7、客户端开机自动安装

CentOS 6和CentOS 7的配置有部分不同;

cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/
mkdir/var/lib/tftpboot/pxelinux.cfg/
cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
内容如下所示:
            display boot.msg

            menu background splash.jpg
            menu title Welcome to CentOS 6.7 MageEdu!
            menu color border 0 #ffffffff #00000000
            menu color sel 7 #ffffffff #ff000000
            menu color title 0 #ffffffff #00000000
            menu color tabmsg 0 #ffffffff #00000000
            menu color unsel 0 #ffffffff #00000000
            menu color hotsel 0 #ff000000 #ffffffff
            menu color hotkey 7 #ffffffff #ff000000
            menu color scrollbar 0 #ffffffff #00000000

            label autoinst
            menu label ^Auto Install CentOS
            menu default
            kernel vmlinuz
            append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg
            label linux
            menu label ^Install or upgrade an existing system
            kernel vmlinuz
            append initrd=initrd.img
            label vesa
            menu label Install system with ^basic video driver
            kernel vmlinuz
            append initrd=initrd.img nomodeset
            label rescue
            menu label ^Rescue installed system
            kernel vmlinuz
            append initrd=initrd.img rescue
            label local
            menu label Boot from ^local drive
            localboot 0xffff
            label memtest86
            menu label ^Memory test
            kernel memtest
            append -

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58175

(0)
M20-1马星M20-1马星
上一篇 2016-11-07 10:55
下一篇 2016-11-07 11:44

相关推荐

  • shell脚本总结

    shell脚本简要总结 脚本调试 bash -n /path/to/some_script检测脚本中的语法错误 bash -x /path/to/some_script调试执行 变量 环境变量 变量声明、赋值:export name=VALUEdeclare -x name=VALUE 变量引用:$name, ${name} 显示所有环境变量: export…

    Linux干货 2016-08-21
  • python练习实例

    #依次输出五位数的每一位(由低位到高位)i=12345for a in range(5):j=i%10i=i//10print(j) #依次输出五位数的每一位(由高位到低位)i=12345for a in range(5,0,-1):j=i//10**(a-1)i=i%10**(a-1)print(j) #打印菱形for i in range(-3,4):j…

    Linux干货 2018-03-25
  • DNS and BIND 进阶

    主DNS服务器的ip地址:192.168.1.109 主DNS服务器主机名:bogon 正向区域名:sh.com 反向区域名:1.168.192.in-addr.arpa 正向区域文件名称:/var/named/sh.com.hosts 反向区域文件名称:/var/named/192.168.1.rev 配置主文件/etc/named.conf过程 1、编辑…

    Linux干货 2016-12-06
  • linux常用的文件,目录管理命令总结和文件元数据信息含义

    常用的文件管理类命令及其具体用法 1.rmdir删除空目录 -p 递归删除多级空目录 这个命令不能删除非空目录 例如 [root@dxlcentOS ~]# rmdir /tmp/we rmdir: 删除 “/tmp/we” 失败: 目录非空 [root@dxlcentOS ~]# rmdir /tmp/we2 2.mkdir创建目录 常用选项-p 自动递归…

    Linux干货 2017-10-05
  • keepalived双主模型高可用Nginx服务

    配置前提: (1) 各节点时间必须同步;             ntp, chrony (2) 确保iptables及selinux不会成为阻碍; (3) 各节点之间可通过主机名互相通信(对KA并非必须);   &nb…

    2017-07-06
  • 搭建CA服务器为Client签发证书

    搭建CA服务器为Client签发证书   此次实验步骤如下: 一、搭建CA服务器 1)  在/etc/pki/CA下创建index.txt文件,此文件是为Client签发证书的索引文件; 2)  在/etc/pki/CA下创建serial文件,此文件记录为Client签发证书的编号; 3)  生成CA服务器私钥; 4)…

    2017-05-21