dhcp&pxe&cobbler

运维自动化发展历程

全人肉阶段
魔兽(windows) 欧美,韩国 100服务器10个程序 10人10机器*10程序
先入为主
开发成本小,提供很多开发库工具,
携程 .net --> linux迁移
工具化阶段
脚本半自动化方式 登录 100服务器 配置10个程序 启停管理10个程序。降低人为操作失误
平台化阶段
puppet saltstack ansible ....
自驱动阶段
运维是一个工作的创造者,其它部门是需求提出者。

  • Windows服务下的问题处理
    重启服务 重启系统 重装系统
    非开源商业产品
  • DHCP服务:
    C/S架构:

(1) client: dhcp discover
没有Ip资源前是通过mac地址访问,通过广播方式 255.255.255.255
(2)dhcp server: dhcp offer
单播回应请求ip资源的主机,
(3)client: dhcp request
单播请求分配ip资源
(4)dhcp server: dhcp ack
dhcp server从自己的ip资源池分配一个空闲ip给到client。

  1. 如果同一个网段当中,如果有多个dhcp服务器
    理论不应该有该情况,如果 谁先收到请求谁先响应。
  2. 不同网段,是否能够提供dhcp服务
    dhcprelay服务,中继来为不同网段提供ip资源分配。
    dhcp服务如希望为不同网段提供服务,必须先为自身网段提供服务。
  3. ip租赁时长
    80 位同学,但只有50个ip资源。 大家都希望抢火车票,假设火车票10分钟才能被抢完。

租赁时间 5min。

  • 50% 时长
    client主动请求续租,如果dhcpserver回应,继续续租。如果dhcp不回应

  • 75%
    再回来问一次dhcpserver,请求续租

  • 87.5%
    再问一次dhcpserver,请求续租,同时尝试发送该网段中新的dhcp服务。
  • Arp协议
    ip -> mac
  • rarp协议(dhcp请求地址时使用的协议)
    mac -> ip

!! 启动dhcp服务之前务必保证自己的vm网卡不是桥接模式,否则整个教室的同学会网络异常!!

dhcp服务器自身:
(1)使用静态ip地址
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
(2)使用非桥接网络,host-only
(3)ip地址资源池必有有自身的网段,不然进程无法启动

dhcp 服务地址:
172.16.0.67

PXE:

Preboot Excution Environment。
(1)网卡要支持网络引导
(2)硬件要支持PXE。

filename pxelinux.0;
next-server 172.16.0.1;

  • PXE引导过程

(1)Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client。
(2)Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
(3)Client执行接收到的pxelinux.0文件。
(4)Client向TFTP发送针对本机的配置信息(记录在TFTP的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
(5)Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client。
(6)Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。
(7)Client启动Linux内核(启动参数已经在4中的配置文件中设置好了)。
(8)Client通过NFS下载镜像文件,读取autoyast自动化安装脚本。

  • PXE自动化系统安装依赖的服务
    tftp dhcp httpd yum kickstart pxe

  • PXE引导过程
    (1)裸硬件(没有安装系统的带电设备) 通过dhcp 获取ip地址 和 pxelinux.0 和 提供文件下载服务的服务器地址 172.16.0.67
    pxelinux.0 这由哪个服务提供 yum install syslinux
    (2)根据next-server找到文件服务器
    (3)制作yum源,同时提供了系统启动服务所必须的引导文件
    (4)配置引导菜单

你可能感兴趣的:(dhcp&pxe&cobbler)