首页 » Linux » 自动化部署工具cobbler 在centos 7下搭建

自动化部署工具cobbler 在centos 7下搭建

 

cobbler介绍

Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows。

该工具使用python开发,小巧轻便(才15k行python代码),可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。

Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。

Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。

Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。

Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷

Cobbler支持的系统和功能

Cobbler支持众多的发行版:RedHat、Fedora、CentOS、Debian、Ubuntu和SUSE。当添加一个操作系统(通常通过使用ISO文件)时,Cobbler知道如何解压缩合适的文件并调整网络服务,以正确引导机器。

Cobbler可以使用kickstart模板。基于Red Hat或 Fedora的系统使用kickstart文件来自动化安装流程。通过使用模板,就会拥有基本的kickstart模板,然后定义如何针对一种配置文件或 机器配置而替换其中的变量。例如,一个模板可能包含两个变量$domain和$machine_name.在Cobbler配置中,一个配置文件指定 domain=mydomain.com,并且每台使用该配置文件的机器在machine_name变量中指定其名称。该配置文件的所有机器都使用相同的 kickstart安装且针对domain=mydomain.com进行配置,但每台机器拥有其自己的机器名称。您仍然可以使用kickstart模板 在不同的域中安装其他机器并使用不同的机器名称。

为了协助管理系统,Cobbler可通过fence scripts连接到各个电源管理环境。Cobbler支持apc_snmp、bladecenter、bullpap、drac、 ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh和wti。要重新安装一台机器,可 运行reboot system foo命令,而且Cobbler会使用必要的 和信息来为您运行恰当的fence scripts(比如机器插槽数)。

除了这些特性,还可以使用一个配置管理系统(CMS)。你有两种选择:该工具内的一个内部系统,或者现成的外部CMS,比如Chef或 Puppet。借助内部系统,你可以指定文件模板,这些模板会依据配置参数进行处理(与kickstart模板的处理方式一样),然后复制到你指定的位 置。如果必须自动将配置文件部署到特定机器,那么此功能很有用

使用koan客户端,Cobbler可从客户端配置虚拟机并重新安装系统。

 

Cobbler各个组件之间关系:

wKioL1dCyxTAinKaAAH0I6yzrL8642.jpg

主要目的配置网络接口:

Cobbler的配置结构基于一组注册的对象。每个对象表示一个与另一个实体相关联的实体(该对象指向另一个对象,或者另一个对象指向该对象)。当一个对象指向另一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。以下对象类型的定义

Distros(发行版):表示一个操作系统,它承载了内核和initrd的信息,以及内核参数等其他数据

Profile(配置文件):包含一个发行版、一个kickstart文件以及可能的存储库,还包含更多特定的内核参数等其他数据

Systems(系统):表示要配给的额机器。它包含一个配置文件或一个景象,还包含IP和MAC地址、电源管理(地址、凭据、类型)、(网卡绑定、设置valn等)

Repository(镜像):保存一个yum或rsync存储库的镜像信息

Image(存储库):可替换一个包含不属于此类比的额文件的发行版对象(例如,无法分为内核和initrd的对象)。

基于注册的对象以及各个对象之间的关联,Cobbler知道如何更改文件系统以反应具体配置。因为系统配置的内部是抽象的,所以您可以仅关注想要执行的操作。

 

Cobbler工作流程

  • client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器 (cobbler server)发送其分配好的一个IP
  • DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
  • client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
  • cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和 port
  • client裸机通过上面告知的TFTP server地址通信,下载引导文件
  • client裸机执行执行该引导文件,确定加载信息,选择要安装的os, 期间会再向cobbler server请求kickstart文件和os image
  • cobbler server发送请求的kickstart和os iamge
  • client裸机加载kickstart文件
  • client裸机接收os image,安装该os image

Cobbler集成的服务

  • PXE服务支持
  • DHCP服务管理
  • DNS服务管理(可选bind,dnsmasq)
  • 电源管理
  • Kickstart服务支持
  • YUM仓库管理
  • TFTP(PXE启动时需要)
  • Apache(提供kickstart的安装源,并提供定制化的kickstart配置)

配置目录

配置文件目录:
/etc/cobbler
/etc/cobbler/settings : cobbler 主配置文件
/etc/cobbler/iso/: iso模板配置文件
/etc/cobbler/pxe: pxe模板文件
/etc/cobbler/power: 电源配置文件
/etc/cobbler/user.conf: web服务授权配置文件
/etc/cobbler/users.digest: web访问的用户名密码配置文件
/etc/cobbler/dhcp.template : dhcp服务器的的配置末班
/etc/cobbler/dnsmasq.template : dns服务器的配置模板
/etc/cobbler/tftpd.template : tftp服务的配置模板
/etc/cobbler/modules.conf : 模块的配置文件
数据目录:
/var/lib/cobbler/config/: 用于存放distros,system,profiles 等信 息配置文件
/var/lib/cobbler/triggers/: 用于存放用户定义的cobbler命令
/var/lib/cobbler/kickstart/: 默认存放kickstart文件
/var/lib/cobbler/loaders/: 存放各种引导程序  镜像目录
/var/www/cobbler/ks_mirror/: 导入的发行版系统的所有数据
/var/www/cobbler/images/ : 导入发行版的kernel和initrd镜像用于 远程网络启动
/var/www/cobbler/repo_mirror/: yum 仓库存储目录
日志目录:
/var/log/cobbler/installing: 客户端安装日志
/var/log/cobbler/cobbler.log : cobbler日志

命令介绍

cobbler commands介绍
cobbler check 核对当前设置是否有问题
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的详细信息
cobbler sync 同步配置到数据目录,更改配置最好都要执行下
cobbler reposync 同步yum仓库
cobbler distro 查看导入的发行版系统信息
cobbler system 查看添加的系统信息
cobbler profile 查看配置信息

3.6/etc/cobbler/settings中重要的参数设置

default_password_crypted: "$1$gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/"
manage_dhcp:1
manage_tftpd:1
pxe_just_once:1
next_server:< tftp服务器的 IP 地址>
server:

 

 

介绍了这么多,下面开始部署

安装cobbler

然后检测cobbler

cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供

cobbler可自行管理这些服务中的部分甚至是全部,但需要配置文件/etc/cobbler/settings中的“manange_dhcp”、“manager_tftpd”、“manager_rsync”、“manager_dns”分别来进行定义,另外,由于各种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。

检查配置文件,需要在cobblerd和httpd启动的情况下检查

修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名

执行 cobbler get-loaders

 

启动rsync 服务

 

安装debmirror

生成密码来取代默认的密码,更安全

安装cman fence-agents,配置

 

配置DHCP

修改以下内容为自己实际地址

同步cobbler的配置,可以看到同步干了哪些事

 

设置开启自启,并重启服务

 

导入镜像

 

查看镜像列表

 

镜像存放目录,cobbler会将镜像中的所有安装文件拷贝到本地一份,放在/var/www/cobbler/ks_mirror下的CentOS-7-DVD-1708.iso-x86_64目录下。因此/var/www/cobbler目录必须具有足够容纳安装文件的空间

配置ks.cfg

在第一次导入系统镜像后,Cobbler会给镜像指定一个默认的kickstart自动安装文件在/var/lib/cobbler/kickstarts下的sample_end.ks

 

查看安装镜像文件信息

 

编辑profile,修改关联的ks文件

可以看到下面Kickstart那里的配置cfg文件地址被改变了

同步下cobbler数据,每次修改完都要镜像同步

修改这里,开机画面显示

 

222222222

这里是如果方向键不选择第二项就无法装机,不算自动化,我们需要进行手动指定才可以完全自动化

定制化安装

kickstart实现某台服务器使用指定ks文件可能比较复杂,但是Cobbler就很简单了,区分一台服务器的最简单的方法就是物理MAC地址。

VMware查看物理MAC地址

3333

 

56

 

 

 

后面还有web UI 的管理,待续。。。

原文链接:自动化部署工具cobbler 在centos 7下搭建,转载请注明来源!

0