1.3 周边服务准备

1.3.1 DHCP

要使用cobbler自动安装操作系统,您必须使用PXE;如果要使用PXE,您必须要有DHCP,否则无法让机器在开机之后马上获取到IP地址并上网。cobbler支持dhcpd和dnsmasq:前者只提供DHCP服务,后者提供dhcp和DNS服务。

注意:如果您要使用dnsmasq来提供DHCP服务,您必须同时使用它来提供DNS服务。不要混用dnsmasq和dhcpd,或者混用dnsmasq和bind。

在实际工作中,我们一般会在其他地方管理DNS,不会交由cobbler管理。因此本章只介绍如何提供DHCP服务,并且只介绍单个网段的配置,不介绍多个网段。这里我们选择dhcpd。

1.3.1.1 DHCPD(有时候也叫“ICS DHCP”)

以 CentOS 6.5 为例。我们若要配置cobbler来管理DHCP服务,需要在/etc/cobbler/settings中,修改manage_dhcp为如下状态:

# set to 1 to enable Cobbler's DHCP management features.
# the choice of DHCP management engine is in /etc/cobbler/modules.conf
manage_dhcp: 1

还要指定cobbler使用哪一个DHCP服务的配置文件,在/etc/cobbler/modules.conf中,将[dhcp]修改为如下状态:

# dhcp:
# chooses the DHCP management engine if manage_dhcp is enabled
# in /etc/cobbler/settings, which is off by default.
# choices:
#    manage_isc     -- default, uses ISC dhcpd
#    manage_dnsmasq -- uses dnsmasq, also must select dnsmasq for dns above
# NOTE: more configuration is still required in /etc/cobbler
# for more information:
# https://github.com/cobbler/cobbler/wiki/Dhcp-management

[dhcp]
module = manage_isc

然后我们便可以修改dhcpd的配置了。请注意,虽然dhcpd的默认配置文件在/etc/dhcp/这个文件夹下。但是因为我们将其交由cobbler来管理,因此我们不修改这里的配置文件。我们要修改的配置文件是/etc/cobbler/dhcp.template

subnet 10.224.173.0 netmask 255.255.255.0 {
     option routers             10.224.173.1;    #网关
     option domain-name-servers 10.230.12.2;    #DNS
     option subnet-mask         255.255.255.0;    #子网掩码
     range dynamic-bootp        10.224.173.55 10.224.173.57;    #IP范围
     default-lease-time         21600;            #默认租约时间(以秒为单位)
     max-lease-time             43200;            #最大租约时间(以秒为单位)
     next-server                $next_server;    #下一跳服务器地址
     class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          if option pxe-system-type = 00:02 {
                  filename "ia64/elilo.efi";
          } else if option pxe-system-type = 00:06 {
                  filename "grub/grub-x86.efi";
          } else if option pxe-system-type = 00:07 {
                  filename "grub/grub-x86_64.efi";
          } else {
                  filename "pxelinux.0";
          }
     }
}

第一行中的subnetnetmask修改为我们需要提供的网段和子网掩码;下面几行中,routers修改为该网段的默认网关;domain-name-servers修改为我们要下发的DNS地址;subnet-mask修改为子网掩码;dynamic-bootp修改为我们要提供的IP范围:一个为开始的IP,一个为结束的IP;default-lease-timemax-lease-time分别表示“默认租约时间”和“最大租约时间”(以秒为单位),可以按照默认配置。next-server表示下一跳服务器地址,从此处开始之后的内容均不需要修改。

修改完成之后,执行cobbler sync将配置写入dhcpd的配置文件中。至此该配置文件修改完成。