DHCP&PXE&Cobbler

栏目: 服务器 · 发布时间: 5年前

内容简介:DHCP: Dynamic Host Configuration Protocol 简而言之动态主机配置协议,即然英文没有说是IP配置协议,那么就是说除了给客户机配置IP外它还能干点儿别的。下面来看看一个简单的流程说明PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(tri

DHCP&PXE&Cobbler

一、DHCP简介

(一)DHCP工作流程

DHCP: Dynamic Host Configuration Protocol 简而言之动态主机配置协议,即然英文没有说是IP配置协议,那么就是说除了给客户机配置IP外它还能干点儿别的。

下面来看看一个简单的流程说明

  • 第一步,客户端启动后暂未获得IP地址,向所在局域网广播一个DHCP discover报文。

  • 第二步,本地局域网中的DHCP服务器(可能不止一台)收到客户端的discover报文后,向本地网络广播(为了让其他服务器也收到)发送DHCP offer报文,包含服务器从自己掌管的IP地址范围内取出的一个IP。

  • 第三步,客户端收到服务器的offer后,(如果有多台服务器发送了offer,当然是采用最先到达的)。然后客户端再向本地局域网广播(让所有服务器收到它已经拟采用某个IP)一个DHCP request报文。

  • 第四步,提供IP的服务器收到客户端发来的request报文后,再次向本地网络广播发送acknowledgement报文,即ACK确认。

  • DHCP协议报文格式如下:

    DHCP&PXE&Cobbler

    • Op:报文类型,分为 两大类: Request(1) 和 Reply(2)  

    • HW Type:硬件类型,一般是以太网:1  

    • HW Len:硬件地址长度,单位字节。对应以太网:6(mac地址长度为6字节48bit)  

    • Transaction ID:事务ID,随机数,有客户端生成,服务器Reply时,会把Request中的Transaction拷贝到Reply报文中。  

    • Secs:距离第一次发送IP请求或Renew请求过去的秒数  

    • Flags:标志位,目前仅第一个bit有使用,置1 标明广播  

    • Client IP Address:当前客户端的IP地址,客户端初始时没有IP地址,则置0,即0.0.0.0

    • Your IP Address:服务器想客户端提供IP地址时,会把IP地址填入本字段  

    • (Next)Server IP Address:客户端获取网络引导文件的服务器,比如TFTP的IP地址  

    • Gateway (Relay) IP Address:网关(中继)IP地址,有DHCP 中继器在转发DHCP报文的时候填入  

    • Server Name:Server名字,有64bytes,一般不使用,填充为0  

    • Boot File name:网络启动的引导文件名

    • Option:选项,不定长度。 常用的比如DHCP Message Type(discover、request、offer、ack)

(二)DHCP主要配置参数

  • 配置文件路径/etc/dhcp/dhcpd.conf

  • 主配置参数:

    option domain-name "wind.com"; #域名
    option domain-name-servers ns1.wind.com; #DNS服务器
    ​
    default-lease-time 600; #默认DHCP租约时间
    max-lease-time 7200;  #最大租约时间,超过后不可续约必须重新获取IP

    全局参数会被subnet的定义覆盖,就是说越小范围定义的参数优先起效。所以你可以只定义一个subnet配置段就好。

    subnet 192.168.10.0 netmask 255.255.255.0 {  #定义子网网络号,掩码
      range 192.168.10.100 192.168.10.200;  #本子网可分配的IP范围
      option routers 192.168.10.1;      #网关
      option broadcast-address 192.168.10.255;  #广播地址
      default-lease-time 600;   
      max-lease-time 7200;
    }

    另外有保留地址的配置段,可以给你局域网预留一些服务器的IP,比如,DNS、FTP服务器等等

    host fantasia {  #host后面的名字随便取,在配置文件中不重名即可
      hardware ethernet 0:0:c0:5d:bd:95; #预留IP对应的设备mac
      fixed-address fantasia.fugue.com;
    }

二、PXE环境配置

(一)PXE简介

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

PXE+Kickstart实现自动安装系统的流程

DHCP&PXE&Cobbler

  1. Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0位于的TFTP服务器IP地址一并传送给Client

  2. Client向PXE Server上的TFTP发送获取网络引导启动文件pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0

  3. Client执行接收到的pxelinux.0文件

  4. Client向TFTP发送 Linux 内核请求信息,TFTP接收到消息之后将内核文件发送给Client

  5. Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统

  6. Client启动Linux内核, 此处会重新通过DHCP获取IP,因为之前的IP是网卡的而不是内核的。

  7. Client向TFTP Server发送针对本机的Kickstart文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。

  8. Client下载软件包安装源文件,读取自动化安装脚本

PXE仅支持一个版本的系统安装

(二)TFTP配置

CentOS7.4的话先安装三个软件包

yum -y install syslinux  xinetd.x86_64 tftp-server.x86_64

再systemctl start tftp.socket启动tftp

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

三、Cobbler安装与配置

简而言之,Cobbler是为了进行多版本系统批量自动安装的管理工具。

Cobbler的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。

Distros(发行版):表示一个操作系统,它承载了内核和initrd的信息,以及内核参数等其他数据。
Profile(配置文件):包含一个发行版、一个kickstart文件以及可能的存储库,还包含更多特定的内核参数等其他数据。
Systems(系统):表示需要额外配置给客户机的系统参数。它包含一个配置文件或一个镜像,还包含IP和MAC地址、电源管理(地址、凭据、类型)、(网卡绑定、设置valn等)。
Repository(镜像):保存一个yum或rsync存储库的镜像信息。
Image(存储库):可替换一个包含不属于此类比的额文件的发行版对象(例如,无法分为内核和initrd的对象)。

各对象的关系图如下:

DHCP&PXE&Cobbler

(一)主配置文件

yum install -y cobbler  #epel源安装cobbler

  • /etc/cobbler/settings   #cobbler自身的相关配置

    • default_password_crypted: “$1$mF86/UHC$WvcIcX2t6crBz2onWxyac.”

      这个参数是指定批量安装客户机系统时指定初始的root密码的密文

      一个简单的办法是,直接复制/etc/shadow中的用户密码密文进行替换。

      或者采用如下方法生成:

      openssl passwd -1 -salt $(openssl rand -hex 4) abc123 #最后是设定的密码

    • default_kickstart: /var/lib/cobbler/kickstarts/default.ks

      默认的kickstart文件路径,可直接修改默认文件达成自己的需求,或者修改cobbler的profile指定一个或者多个kickstart文件。

    • server ip 必须与cobbler服务器本机IP一致 ,不然cobbler相关命令会卡死。而且报错却是httpd未启动或未代理cobbler页面或防火墙未关闭。

  • /etc/cobbler/modules.conf  

    可由cobbler托管的服务配置文件,RSYNC、DHCP、TFTP、DNS;及web访问验证方式配置。

    • [authentication]

      module = authn_configfile  #配置cobbler-web访问时的验证方式

      常用选项是authn_pam(pam模块系统用户验证)、authn_configfile

      • 使用authn_pam模块认证cobbler_web用户

        1. 添加系统用户,用户名和密码按需设定即可,而后将用户名添加至cobbler_web的admin组中。

        2. 修改/etc/cobbler/users.conf文件,将用户名添加为admin参数的值即可,如下所示。

          [admins]

          admin = “USER”

      • 使用authn_configfile模块认证cobbler_web用户

        创建其认证文件/etc/cobbler/users.digest,并添加所需的用户 。cobbler_web的realm只能为Cobbler。 如下所示:

        htdigest -c /etc/cobbler/users.digest Cobbler cblradmin

(二)配置Cobbler

  • 管理distro

    • 配置Cobbler使之可用的第一步为定义distro,可以通过为其指定外部的安装引导内核及ramdisk文件的方式实现。如果已经有完整的系统安装树(如CentOS6的安装镜像)则推荐使用import直接导入的方式进行。

      $ cobbler import --name=centos7.4 --arch=x86_64 --path=/mnt

      The –arch option need not be specified, as it will normally be auto-detected. We’re doing so in this example in order to prevent multiple architectures from being found (Fedora ships i386 packages on the full DVD, and cobbler will create both x86_64 and i386 distros by default).
      

      不需要指定 arch 选项, 因为它通常会自动检测到。在这个例子中这样做是为了防止发现多个体系结构 (例如Fedora在full DVD 中支持i386与x86_64 两个版本, 而Cobbler将在默认情况下创建 x86_64 和 i386 发行版本)。

      import会自动将光盘文件复制到/var/www/下自动创建的cobbler目录

      如果有kickstart文件,也可以使用“–kickstart=/path/to/kickstart_file”一并进行导入 ,不指定此选项,Cobbler也将在生成的profile中引用Cobbler默认的最小化安装kickstart文件 /var/lib/cobbler/kickstarts/default.ks

    • 可使用“cobbler distro list”列出所有的distro。

  • 管理profile

    cobbler使用profile来为特定的需求类别提供所需要安装配置,即在distro的基础上通过提供kickstart文件来生成一个特定的系统安装配置。distro的profile可以出现在PXE的引导菜单中作为安装的选择之一。

    # cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos-6.5-x86_64.cfg

    可使用“cobbler profile list”查看已经创建的profile。

    运行cobbler sync 来同步配置,其实profile就是对/var/lib/tftpboot/pxelinux.cfg/default 文件中添加或者修改一个lable段

    DEFAULT menu
    PROMPT 0
    MENU TITLE Cobbler | http://cobbler.github.io/ #安装版本选择菜单的标题可以修改,但是每次同步cobbler设置会覆盖你的修改
    TIMEOUT 200  #超时时间,查了官方文档in units of 1/10 s. 也就是20s,依需要修改;如果你敲任意键将停止计时
    TOTALTIMEOUT 6000 #此超时是不论用户是否敲键盘超时都将执行下一步操作
    即
    # Wait 20 seconds unless the user types something, but
    # always boot after 10 minutes.
    ​
    ONTIMEOUT local #设置在超时时调用的命令行 (通常引用标签)。如果未指定, 则使用 UI (如果存在) 或默认值。
    ​
    LABEL local
            MENU LABEL (local)
            MENU DEFAULT   #默认条目,如果你添加了条目要实现自动安装系统时将此项剪切过去
            LOCALBOOT -1
    ​
    ​
    ​
    MENU end
  • system用的不多,因为我们有更好的选择,ansible与puppet。

    cobbler安装系统的流程如下:

    DHCP&PXE&Cobbler

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/104319


以上所述就是小编给大家介绍的《DHCP&PXE&Cobbler》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spring 3.x企业应用开发实战

Spring 3.x企业应用开发实战

陈雄华 / 电子工业出版社 / 2012-2-1 / 90.00元

内容简介 Spring 3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring 3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java Web应用开发的难度,同时有效......一起来看看 《Spring 3.x企业应用开发实战》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器