大数据频道 频道

使用Cobbler自动安装Linux系统

  【IT168 技术】摘要:随着虚拟化技术日趋成熟,以及在资金节省和IT效率提高上的优势日益明显,越来越多的企业也开始部署虚拟化平台。近来基于KVM的虚拟化技术越来越成熟,方案也越来越多样化,得到了企业广泛的应用。但随着业务的增长,物理机的数量也在逐渐增加。IT管理员,为每个物理安装Linux操作系统,就成了一件必须且繁琐的事情。为了更好的解决管理员在安装系统方面的困扰,本文将探讨 Cobbler 的一些特性,如何安装,以及如何创建一种适合自动安装多个客户端机器的配置方法,通过以往真实的项目实战与经验,把操作实施过程全部记录下来。主要有以下几个主要内容。

  ●简介

  ●Cobbler的规划

  ●Cobbler的安装

  ●Cobbler的配置

  ●结果

  一、简介

  1、背景介绍

  随着云计算的发展,几乎每个数据中心都提供成百上千的物理服务器提供服务。随着业务的不断扩展,服务器的规模也在不断的扩大。管理员需要频繁的安装操作系统以满足虚拟化的需要。

  考虑到上述问题,项目采用开源的操作系统部署工具对物理机进行Linux批量安装,为IT人员提供操作系统的灵活与批量部署功能,便于平台的扩容和改造。

  2、Cobbler介绍

  Cobbler是一个基于python开发的开源操作系统批量部署工具,无需付费购买。系统管理员可以通过官方下载得到其最新版本。Cobbler是通过将DHCP、TFTP、DNS、HTTP等服务进行集成,创建一个中央管理节点,其可以实现的功能有配置服务,创建存储库,解压缩操作系统媒介,代理或集成一个配置管理系统,控制电源管理等。 Cobbler的最终目的是实现无需进行人工干预即可安装操作系统。

  3、基本概念

  为了更好的理解和部署Cobbler工具,需要提前了解以下概念

  3.1 PXE

  预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装操作系统。PXE当初是作为Intel的有线管理体系的一部分,Intel和Systemsoft于1999年9月20日公布其规格(版本2.1)。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。

  3.2 Kickstart

  Kickstart 是红帽公司创建的一个安装方法,我们可以简单理解为一个自动安装应答配置管理程序。通过读取这个配置文件,系统知道怎么去分区,要安装什么包,配什么IP,优化什么内核参数等等。其主要有以下部分组成:

  ●Kickstart 安装选项,包含语言的选择,防火墙,密码,网络,分区的设置等;

  ●%Pre 部分,安装前解析的脚本,通常用来生成特殊的ks配置,比如由一段程序决定磁盘分区等;

  ●%Package 部分,安装包的选择,可以是 @core 这样的group的形式,也可以是这样 vim-* 包的形式;

  ●%Post 部分,安装后执行的脚本,通常用来做系统的初始化设置。比如启动的服务,相关的设定等。

  4、Cobbler的工作原理

  为了更好的了解和使用Cobbler工具,就必须先了解一下Cobbler的工作原理。如下图所示

使用Cobbler自动安装Linux系统
▲图1-1Cobbler 工作原理

  理解Cobbler的工作原理对于成功的部署和安装Cobbler至关重要。以下将对原理图进行简要的说明:

  Server端:

  ①启动Cobbler服务

  ②进行Cobbler错误检查,执行cobbler check命令

  ③进行配置同步,执行cobbler sync命令

  ④复制相关启动文件文件到TFTP目录中

  ⑤启动DHCP服务,提供地址分配

  ⑥DHCP服务分配IP地址

  ⑦TFTP传输启动文件

  ⑧Server端接收安装信息

  ⑨Server端发送ISO镜像与Kickstart文件

  Client端:

  ①客户端以PXE模式启动

  ②客户端获取IP地址

  ③通过TFTP服务器获取启动文件

  ④进入Cobbler安装选择界面

  ⑤客户端确定加载信息

  ⑥根据配置信息准备安装系统

  ⑦加载Kickstart文件

  ⑧传输系统安装的其它文件

  ⑨进行安装系统

  二、Cobbler的环境准备

  为了便于看到效果,此文中我们将Cobbler服务器安装在一个Linux操作系统的虚拟机中,通过网络对环境中的其他的虚拟机进行系统的安装。以下架构,简单描述了利用Cobbler工具安装操作系统的过程。我们使用 Cobbler工具同时安装两台VM为Linux操作系统,当有更多的继续需要安装OS时,可以自由进行配置扩展,灵活的安装系统。

  1、硬件列表

使用Cobbler自动安装Linux系统
▲表-1 Cobbler服务器

使用Cobbler自动安装Linux系统
▲表-2 Cobbler客户端

  2、逻辑部署架构图

使用Cobbler自动安装Linux系统
▲图2-1Cobbler逻辑架构图

  三、Cobbler的安装与配置

  1、安装Cobbler Server

  为了顺利的安装,我们需要进行一些准备工作。假设我们已经将Cobbler server的操作系统CentOS6.5-64Bit安装完毕,需要提前在系统中安装cman、TFTP、pykickstart、dnsmasq等服务组件。为了更好的进行安装,建议将selinux功能关闭,开放所有的防火墙。

  通过ssh指令,可以远程登录到安装好的Linux服务器,需要安装如下组件,这些组件都可以通过在Cobbler官方找到说明。

  (1)Cman安装包

  (2)TFTP安装包

  (3)Cobbler安装包

  运行命令如下命令,检查相关软件是否安装,若没有正确列出,请进行安装。 

使用Cobbler自动安装Linux系统
▲图3-1依赖关系检查

  这些软件包的安装速度很快,大概5分钟左右安装完成,如下图3-2所示

使用Cobbler自动安装Linux系统
▲图3-2安装包

  2、配置Cobbler Server

  Cobbler安装完成后,需要通过一些配置才能正常工作,提供提供自动化部署的能力。首先配置TFTP和Rsync服务。编辑/etc/xinetd.d/tftp文件,将文件中的disable字段的配置由yes改为no,编辑/etc/xinetd.d/rsync文件,将文件中的disable字段的配置由yes改为no。如图3-3及3-4所示:

使用Cobbler自动安装Linux系统
▲图3-3TFTP设置

使用Cobbler自动安装Linux系统
▲图3-4 rsync设置

  配置完成后,修改cobbler配置文件/etc/cobbler/settings,将配置文件中的server与next-server配置为cobbler服务器本机IP,将manage_dhcp和manage_rsync的值设定为1。

  通过openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'命令生成新的密码,并将密码放入setting配置文件中的password区域,启动cobbler服务。通过cobbler check命令检查配置文件是否正确。

使用Cobbler自动安装Linux系统
▲图3-5校验配置文件

  如果出现上图的各种问题,请按照要求修复,避免不必要的错误发生。

  输入cobbler get-loaders系统将自动下载loader程序,完成提示1的修复工作。

使用Cobbler自动安装Linux系统
▲图3-6 get-loaders

  再次执行cobbler check,当所有错误都fix后,重启cobbler服务,service cobblerd restart。接下来配置DHCP服务,通过此服务使预安装系统自动获得IP地址,便于与cobbler通信。

  修改DHCP的配置文件,vi /etc/cobbler/dhcp.template,如图3-7所示:

使用Cobbler自动安装Linux系统
▲图3-7 DHCP 配置

  完成DHCP配置后,重新启动cobbler、httpd、xinetd及DHCP服务。完成后输入cobbler sync,

  将配置文件进行同步。至此,cobbler的配置工作已经完成。

  3、添加映像

  下一步我们需要导入一个远程安装的映像到cobbler服务器供客户端调用,这里将采用centos

  作为客户端ISO。首先上传ISO文件到下图所示位置并挂载到ISO库,当然也可以自定义。

使用Cobbler自动安装Linux系统
▲图3-8 ISO库

  输入以下指令进行导入,由于ISO较大,所以时间较长需要耐心等待完成。导入其他镜像也类似方式,只是路径和名称不同而已。

使用Cobbler自动安装Linux系统
▲图3-9导入镜像

  完成后,查看导入源库列表和查看详细信息,输入cobbler list和cobbler report

使用Cobbler自动安装Linux系统
▲图3-10 镜像列表

使用Cobbler自动安装Linux系统
▲图3-11 详细报告

  更多cobbler命令可以参考cobbler help,到此ISO已经被导入,并等待客户端调用。

  四、测试

  通过前面的安装和配置,cobbler服务器就可以正常运行了。下面将通过远程安装Centos6.5操作系统,来测试cobbler的工作状况。

  1、安装

  为了更快的看到效果,我们将新建一台虚拟机作为新的客户端。启动虚机选择,客户端将通过广播方式与DHCP互通,得到IP地址,并通过TFTP获得内核镜像。

使用Cobbler自动安装Linux系统
▲图4-1 获得安装信息

  选择相关的操作系统,并敲回车。

使用Cobbler自动安装Linux系统
▲图4-2 选择OS类型

使用Cobbler自动安装Linux系统
▲图4-3 安装完成

  2、kickstart文件定制

  为了方便用户的多种部署需求,cobbler也提供了部署文件自定义功能。当在第一次导入系统镜像时,cobbler会给安装镜像指定一个默认的kickstart自动安装文件,文件位于/var/lib/cobbler/kickstarts/sample.ks。

使用Cobbler自动安装Linux系统
▲图4-3 自定文件

  具体的定制方法,可以参阅cobbler的帮助文件或文档。

  五、总结

  本文主要介绍了Cobbler的安装与配置,通过部署Centos6.5来测试其可用性。除此之外,也可以利用Cobbler部署VMware ESXI,RHEL等操作系统。 由于硬件类型众多,难免遇到驱动无法识别的问题。可以通过修改KS文件去安装驱动,或者安装其他的软件。本文中暂时不讨论KS的定制问题,建议参考Cobbler的官方文档。Cobbler将为管理员节约更多的服务器部署时间,提高部署效率加速企业中IT运维的自动化进程。

  参考资料

  Cobbler网站提供了丰富的文档资料,用户可以从以下的链接中获得详细帮助信息。

  1.Cobbler官方

  https://fedorahosted.org/cobbler/

  2. CentOS 官方

  https://www.centos.org/l

  作者简介:

  

使用Cobbler自动安装Linux系统
▲张志强

  系统工程师

  任职于某大型外资IT企业,从事信息技术服务工作。熟悉IBM System X系列服务器,IBM Power System系列服务器,IBM DS系列及虚拟化系列存储产品。拥有丰富的IBM System x系列服务器和Power VM虚拟化经验。

1
相关文章