运维自动化与Cobbler服务部署
一.Cobbler简介
1.1.简介
-
Cobbler是一款Linux生态的自动化运维工具,基于Python2开发,用于自动化批量部署安装操作系
统;其提供基于CLI的管理方式和WEB配置界面,其中WEB配置界面是基于Python2和Django框架开
发。另外,cobbler还提供了API,方便二次开发。当然,Cobbler属于C/S模型(客户端/服务器模型) -
Cobbler主要用于快速网络安装linux操作系统,支持众多的Linux发行版如:Red Hat、
Fedora、CentOS、Debian、Ubuntu和SuSE等。 -
在cobbler之前,微软曾开发过另一项类似的基于C/S工作模式的技术PXE(Prebot eXecute
Environment,预启动执行环境),其支持通过网络启动操作系统,亦可以让需要安装系统的带支持
PEX技术网卡的裸机通过网络从http服务器下载映像来安装,在启动过程中,客户端需要从dhcp服务器
得到IP地址、掩码、网关以及相关的配置文件路径,再用TFTP(trivial file transfer
protocol)协议从服务器下载一个引导启动的软件包(类似linux光盘的isolinux文件夹下的文件)并加载
到本机内存中执行,经过启动软件包中配置文件指定的ks应答文件指明服务器中的操作系统位置,进而
找到安装源,并在ks文件的指导下完成操作系统的安装。 -
Cobbler实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法。
1.2.Cobbler的下属服务
-
使用Cobbler安装系统需要一台专门提供各种服务的服务器,提供的服务包括(HTTP/FTP/NFS,
TFTP,DHCP),也可以将这几个服务分别部署到不同服务器。事实上在实际应用中,总是将不同的服务分别
部署到专门的服务器。 -
Cobbler是在HTTP、TFTP、DHCP等各种服务的基础上进行相关操作的,实际安装的大体过程类似于基
于PXE的网络安装:客户端(裸机)开机使用网卡引导启动,其请求DHCP分配一个地址后从TFTP服务器获取
启动文件,加载到客户端本地内存中运行,并显示出可安装的系统列表;在人为的选定安装的操作系统类
型后,客服端会到HTTP服务器下载相应的系统安装文件并执行自动安装。 -
PXE网络安装示意
1.3.工作流程
- Cobbler大致工作流程如下
二.Cobbler安装
2.1.安装epel源
- Cobbler来源于epel源,在安装cobbler之前需要配置epel源,或者直接使用命令安装epel源:
[root@mainserver ~]#wget -O /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
2.2.安装Cobbler及其相关的服务和组件
- Cobbler下属的服务包括HTTPD,TFTP,DHCP等,如果有web界面要求,还需要安装相关的组件
[root@mainserver ~]#yum install -y httpd dhcp tftp-server cobbler cobbler-web pykickstart xinetd
httpd:配合cobbler-web使得cobbler可以通过web网页界面进行配置管理
tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
cobbler-web.noarch : Web interface for Cobbler
pykickstart.noarch : 基于python的管理kickstart文件的库
xinetd.x86_64 : A secure replacement for inetd
三.Cobbler配置
3.1.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 : cobbler模块的配置文件
- 数据目录
/var/lib/cobbler/config/: 用于存放distros,system,profiles 等信息的配置文件
/var/lib/cobbler/triggers/: 用于存放用户定义的cobbler命令
/var/lib/cobbler/kickstarts/: 默认存放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日志
3.2.配置及启动cobblerd服务
- 当httpd,tftp及dhcp服务都正常运行后,就可以启动cobblerd服务进行相关的配置了。
- 启动cobblerd
systemctl start cobbler
- 检测cobbler的运行环境,并根据提示逐步配置cobbler
cobbler check
1.更改/etc/xinetd.d/tftp配置文件
vim /etc/xinetd.d/tftp
disable = yes --> disable = no
systemctl restart xinetd
2.联网下载boot引导程序文件
cobbler get-loaders
3.没有网络情况下拷贝启动文件到TFTP服务文件夹
cp -a /usr/share/syslinux/{
pxelinux.0,menu.c32} /var/lib/tftpboot
4.更改/etc/cobbler/settings配置文件的server项为提供cobblerd服务的主机地址,也就是本机地址
sed -nri 's#server:172.0.0.1#server:192.168.31.17#' /etc/cobbler/settings
更改后的整行内容:server:192.168.131.17
5.更改/etc/cobbler/settings配置文件的next_server项,指明tftp服务器地址,使得客户端能够找
到TFTP服务器
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.56.11/' /etc/cobbler/settings
更改后的整行内容:next_server:192.168.131.17
6.配置相应的选项来使用cobbler管理dhcp服务和tftp服务
manage_dhcp:1
manage_tftpd:1
7.pxe_just_once选项,该选项置