Cobbler自动化部署

Posted jack.zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cobbler自动化部署相关的知识,希望对你有一定的参考价值。

一:Cobbler与PXE的区别:

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,需要网卡的硬件支持,工作于C/S的网络模式,支持客户端通过网络从服务器下载映像,并支持客户端机器通过网络启动操作系统,在启动过程中,客户端需要从服务器分配IP地址、掩码、网关以及相关的配置文件路径,再用TFTP(trivial file transfer protocol)协议从服务器下载一个启动软件包到本机内存中执行,由这个启动软件包完成客户端的基本软件设置,从而引导预先安装在服务器中的终端操作系统,PXE可以引导多种操作系统,如:centos、redhat、windows 7等。

Cobbler{[?kɑ:bl?(r)]}翻译为中文是补鞋匠,但是在linux方面则是一个免费的用于系统安装部署的开源软件,cobbler是对PXE技术的二次基于python的开发,提供了CLI(命令行)和Web的管理方式,另外还提供了API(应用程序编程接口)接口,方便二次开发使用,相比PXE,cobbler支持多系统同时引导,而PXE只能一次引导一个系统的安装,cobbler通常与开源软件puppet、saltstack配合使用,进行操作系统的批量安装与部署优化,从而实现大批量linux系统的无人值守安装与服务部署,大大提升运维的工作效率。

 

流程:

1.客户端根据本地Bios设置的的启动顺序,如果是从网卡启动就发出先基于RARP反向地址解析协议(Reverse Address Resolution Protocol)的协议报文,报文中包含自己的MAC地址,但是没有IP地址。

2.DHCP服务器收到请求后,返回给客户端IP地址、掩码、网关,另外还包含一个基于TFTP协议的文件服务器地址和要或获取的文件名称

3.找TFTP服务器获取文件

4.将下载的文件放在内存中运行

5.将系统的引导交给文件执行,这个过程相当于从硬盘当中加载的bootloader过程

6.加载内核vmlinux和initrd.img,本步骤的具体过程如下:

  (1) bootloader就是grub,它把 initrd.img 初始化成一个设备 /dev/intrd,然后bootloader 把内核以及/dev/initrd的内容加载到内存。
  (2) 在内核初始化过程中,内核把 /dev/initrd 设备的内容解压缩并拷贝到 /dev/ram0 设备上。
  (3) 内核以可读写的方式把 /dev/ram0 设备挂载为原始的根文件系统。
  (4) 如果 /dev/ram0 被指定为真正的根文件系统,那么内核不会执行(5)、(6)、(7)的操作,因为这下操作是为了帮内核加载最终的根文件系统做的工作。
  (5) 执行 initrd 上的 /linuxrc 文件,linuxrc 通常是一个脚本文件,负责加载内核访问根文件系统必须的驱动, 以及加载根文件系统。
  (6) /linuxrc 执行完毕,真正的根文件系统被挂载。
  (7) 如果真正的根文件系统存在 /initrd 目录,那么 /dev/ram0 将从 / 移动到 /initrd。否则如果 /initrd 目录不存在, /dev/ram0 将被卸载。
  (8) 在真正的根文件系统上进行正常启动过程 ,执行 /sbin/init。

以上是关于Cobbler自动化部署的主要内容,如果未能解决你的问题,请参考以下文章

Cobbler-自动化部署神器

Cobbler自动化部署最佳实践

一个技术文档就可以完成的cobbler自动部署装机

cobbler自动化部署

Cobbler自动化部署

centos7 cobbler 自动化部署安装系统