内容简介: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协议报文格式如下:
-
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实现自动安装系统的流程
-
Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0位于的TFTP服务器IP地址一并传送给Client
-
Client向PXE Server上的TFTP发送获取网络引导启动文件pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0
-
Client执行接收到的pxelinux.0文件
-
Client向TFTP发送 Linux 内核请求信息,TFTP接收到消息之后将内核文件发送给Client
-
Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
-
Client启动Linux内核, 此处会重新通过DHCP获取IP,因为之前的IP是网卡的而不是内核的。
-
Client向TFTP Server发送针对本机的Kickstart文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
-
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的对象)。
各对象的关系图如下:
(一)主配置文件
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用户
-
添加系统用户,用户名和密码按需设定即可,而后将用户名添加至cobbler_web的admin组中。
-
修改/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安装系统的流程如下:
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/104319
以上所述就是小编给大家介绍的《DHCP&PXE&Cobbler》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
你凭什么做好互联网
曹政 / 中国友谊出版公司 / 2016-12 / 42.00元
为什么有人可以预见商机、超越景气,在不确定环境下表现更出色? 在规则之外,做好互联网,还有哪些关键秘诀? 当环境不给机会,你靠什么翻身? 本书为“互联网百晓生”曹政20多年互联网经验的总结,以严谨的逻辑思维分析个人与企业在互联网发展中的一些错误思想及做法,并给出正确解法。 从技术到商业如何实现,每个发展阶段需要匹配哪些能力、分解哪些目标、落实哪些策略都一一点出,并在......一起来看看 《你凭什么做好互联网》 这本书的介绍吧!