码迷,mamicode.com
首页 > 其他好文 > 详细

虚拟机console基础环境配置——PXE引导无人值守安装环境配置

时间:2018-05-29 23:03:37      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:pxe   添加   ima   查看   网络引导   /etc   分享图片   图形化   append   

1. 概述

无人值守安装,是基于PXE启动的无交互式操作系统安装过程,适合批量安装。
其步骤主要包括:

  1. 配置客户机的BIOS,使其在开机启动后,从网络引导操作系统
  2. 客户机从DHCP获取到IP地址
  3. 客户机在获取到IP地址后,能够通过TFTP获取pxelinux.0引导程序
  4. 客户机执行pxelinux.0获取远程操作系统列表
  5. 客户机选择操作系统类型和版本
  6. 客户机按照pxelinux.0对应的内核引导参数,加载ks.cfg自动化配置文件
  7. 客户机执行安装操作系统

从上述的步骤中,能够总结如下:

  • 获取IP地址

    从DHCP处获取IP地址

  • 获取pxelinux.0引导程序

    从TFTP处获取pxelinux.0

  • 获取操作系统类型和版本列表

    从pxelinux.cfg/default/oslist获取

  • 获取自动化配置文件

    从pxelinux.cfg/default中获取引导参数

2. 部署过程

2.1 部署DHCP服务器

DHCP服务器主要负责为客户机分配IP地址,并且能够根据MAC地址分配地址,主机名,时间服务器,网关,域名等网络信息。

注:DCHP协议详解和参数详解参见博客《DHCP协议详解.md》和《DHCP服务器配置dhcpd.conf详解.md》

2.1.1 YUM安装依赖环境

执行命令rpm -qa | grep dhcpd,检查是否已经安装DHCP;若未安装,执行命令yum -y install dhcd进行安装。

2.1.2 配置/etc/dhcp/dhcpd.conf

默认/etc/dhcp/dhcpd.conf无内容,修改其内容如下:

option domain-name "liwanliang.com";
option domain-name-servers 192.168.80.2,8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style interim;
ignore client-updates;
log-facility local7;
filename "pxelinux.0";
next-server 192.168.80.8;
subnet 192.168.80.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.80.11 192.168.80.254;
    option broadcast-address 192.168.80.255;
    option routers 192.168.80.2;
    default-lease-time 21600;
    max-lease-time 4320;
}
subnet 192.168.10.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.10.11 192.168.10.254;
    option broadcast-address 192.168.10.255;
    default-lease-time 21600;
    max-lease-time 4320;
}

解释:

  1. domain-name-server 为客户机设置DNS1和DNS2;
  2. filename 配置pxelinux引导程序名称;
  3. next-server 配置TFTP的地址;
  4. subnet设置IP池和相关网段,网关信息;

上过配置写入后,保存退出。此时还需要将客户机的MAC地址和主机名,IP绑定。如添加以下配置:

host node11-eth0 {
    hardware ethernet 00:00:00:80:00:11;
    fixed-address 192.168.80.11;
    option host-name node11;
}

host node11-eth1 {
    hardware ethernet 00:00:00:10:00:11;
    fixed-address 192.168.10.11;
    option host-name node11;
}

因为本篇博客需要做99台虚拟机的配置,因此用脚本完成。

注:脚本内容参见博客《shell-scripts::create_dhcp_conf.sh.md》

执行命令‘cat /usr/local/globle/confs/dhcpd/dhcpd_node.txt >> /etc/dhcp/dhcpd.conf‘,将脚本生成的内容,追加到/etc/dhcp/dhcpd.conf配置中

注:上述过程,完成了对DHCP的配置之后,将配置文件拷贝到/usr/local/globle/confs/dhcpd/dhcpd.conf。执行命令 ln -fs /usr/local/globle/confs/dhcpd/dhcpd.conf /etc/dhcp/dhcpd.conf,创建配置文件软链接

2.2 部署TFTP服务器

这部分主要进行TFTP的部署和配置。因为TFTP依靠xinetd服务,因此需要安装并配置xinetd服务

2.2.1 安装xinetd服务

执行命令:yum -y install xinetd

2.2.2 安装tftp-server

执行命令:yum -y install tftp-server

2.2.3 配置tftp-server

进入到目录/etc/xinetd/,编辑tftp-server的配置文件/etc/xinetd/tftp,将disable=yes改为disable=no,即开启xinetd监听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
    per_source      = 11
    cps             = 100 2
    flags           = IPv4
}

2.2.4 启动xinetd服务

执行命令:service xinetd start && chkconfig xinetd on 启动xinetd服务,监听tftp的端口

执行命令:netstat -tupln | grep xined,内容如下:

udp        0      0 0.0.0.0:69                  0.0.0.0:*                               4782/xinetd

出现上述监听,说明部署成功。

2.3 配置pxelinux引导环境

syslinux和pxelinux详细解释,参见博客《syslinux详解.md》

执行命令:find / -name pxelinux.0 查看系统是否安装syslinux环境。若没有则参照下面内容安装。

2.3.1 安装syslinux

执行命令:yum -y install syslinux,安装syslinux环境。

执行命令find / -name pxelinux.0可以找到/usr/share/syslinux/pxelinux.0,这便是网络引导时的系统加载程序。

将/usr/share/syslinux/pxelinux.0拷贝到/var/lib/tftpboot/目录下,修改pxelinux.0的权限为755。

注:/var/lib/tftpboot/是tftp-server的站点根目录。

并在创建目录mkdir -p /var/lib/tftpboot/pxelinux.cfg/,该目录是存放default和oslist的目录。

2.3.2 编辑default和oslist

default是在pxelinx.0从pxelinux.cfg加载的显示给用户的交互式界面,用户选择操作系统类型和或者版本等,此时pexlinux.0加载此项,说明还未加载操作系统内核镜像,只是给出一个选择。
default有一段配置,用于根用户交互,使用户选择操作系统类型和版本。
default内容如下:

#设置默认安装系统
default 1
#设置是否停顿等待.1:等待;0:不等待
prompt 1
#设置选择等待时间.60表示6s
timeout 60
#设置显示的信息文本
display pxelinux.cfg/oslist
#操作系统标签
#label 1:centos6.5
label 1
kernel /centos6.5/vmlinuz
    #append ksdevice=eth0 ks=http://192.168.80.8/kscfg/http-ks.cfg initrd=/centos6.5/initrd.img
    append  initrd=/centos6.5/initrd.img
label 2
#label 2:centos7.2
kernel /centos7.2/vmlinuz
    append ksdevice=eth0 ks=http://192.168.80.8/kscfg/http-ks.cfg intird=/centos6.5/initrd.img
#label 3:ubuntu
#label 4:vmware esxi 6.5
#label 6:xen

上述内容中,配置了默认选择的操作系统版本和内核镜像存放位置/var/lib/tftboot/centos6.5/vimlinuz,以及通过append选项传递给启动内核的参数。
在display一行的配置中,通过pxelinux.cfg/oslist文件来跟用户交互。
oslist的内容是用户自定义内容,本篇博客内容配置如下:

|------------os type----------------|
[1]-centos6.5(default)--------------|
[2]-centos7.2-----------------------|
[3]-ubuntu16.04---------------------|
[4]-exsi 6.5------------------------|
[5]-xen6.5--------------------------|
|-----------------------------------|

可以看出,oslist主要是让用户选择对应的数字,或者说内核标签。然后default会根据用户选择的标签,传递给pexlinux.0用户选择的内核,参数等,然后pxelinux.0开始加载内核镜像,并解压安装。

如下图:

技术分享图片

技术分享图片

从图中能够看出:

  • 客户机已经从DHCP处获取到了IP地址为192.168.80.11
  • 客户机已经从TFTP处获取到了pexlinux.0程序
  • pexlinux.0程序根据tftpboot处的pexlinux.cfg/default配置的oslist内容并展示
  • boot选项会在6s内无操作的情况下,自动加载centos6.5内核镜像文件

2.3.3 无盘工作站

如上所述,当我们在配置了pexlinux.cfg/default中append的参数时,便可进行无人值守的操作系统安装。这只是PXE的应用之一。
应用之二便是多操作系统选择和无盘工作站。只需要将默认选择改变,同时将客户机改为从网络启动,便可以为客户机轻松改变操作系统系统类型和版本。
具体操作参见博客《无盘工作站的创建.md》

2.4 配置镜像站点

2.4.1 配置操作系统镜像站点

镜像站点的配置,有多种方式,包括本地和远程。远程镜像站点的配置,参见包括《虚拟机console基础环境配置——系统镜像站点配置.md

2.4.2 配置自动化配置文件站点

至此,当配置一台kvm虚拟机(指定其MAC地址),然后启动KVM虚拟机时,该虚拟机会从DHCP服务器获取到IP地址和TFTP的网络引导程序,进而从网络站点加载操作系统镜像。假如没有在启动内核中配置自动化配置文件,这个过程和KVM从远程站点安装操作系统一致。
因此,要实现自动化批量安装,即无人值守的安装,还需要配置ks.cfg文件,并在内核引导参数中指定。

2.5 自动化安装配置文件

2.5.1 ks.cfg配置文件的获取

自动化安装配置文件ks.cfg有三种方式可以获取:

  • 图形化配置
  • 修改先有配置
  • 手动创建并编辑

2.5.2 ks.cfg配置文件详解

3. 总结

自动化配置,主要是无需交互。无交互主要是避免大规模装机的重复劳动。因此无人值守的自动化装机,就是利用PXE引导方式,根据PXE指定的内核参数,加载自动化安装配置文件后,自动安装操作系统。

虚拟机console基础环境配置——PXE引导无人值守安装环境配置

标签:pxe   添加   ima   查看   网络引导   /etc   分享图片   图形化   append   

原文地址:https://www.cnblogs.com/liwanliangblog/p/9108088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!