使用Cobbler配置PXE服务器

之前我介绍过如何手动配置一个PXE服务器,但是手动配置PXE服务器步骤太过繁琐,而且有太多配置文件需要设置,很容易发生遗漏。幸好已经有大神帮我们解决了这个问题(我本来想写一个简单的Web代理程序,之前我在github上寻找过这样的程序,但是没有找到)。本篇文章我将尝试使用Cobbler解决手动配置PXE服务器的麻烦问题,Cobbler是一个PXE管理程序,可以用来管理镜像和kickstart配置文件等。 Cobbler 最初由 Michael DeHaan 编写,现在项目主导人是 James Cammarata, 他目前在 Ansible 公司工作。(所以我们后面还会介绍ansible的使用。)

本文使用的是CentOS 7系统,依照Cobbler官网的 quick start 进行部署,不同的系统会有少许区别,Cobbler对 red hat系的系统更加友好。

首先安装cobbler, CentOS7 原生库中没有Cobbler,可以安装epel-release库。

yum install -y epel-release

然后安装cobbler

yum install -y cobbler

请留意虽然cobbler会帮助安装tftp和httpd,但是并不会帮助安装dhcp,所以安装完成cobbler后还需要手动安装dhcp。

yum install -y dhcp

安装完成后需要进行一些必要的配置,配置文件是/etc/cobbler/settings,使用yaml格式。

1.部署后的默认密码,default_password_crypted:”$1$bfI7WLZz$PxXetL97LkScqJFxnW7KS1″

这里配置的密码是加密后的密码,你可以使用openssl passwd -1输入密码并得到加密后的密码,然后将得到的密码配置到这里。

2.server和next_server地址,server地址指的是cobbler server使用的地址,next_server地址指的是DHCP/PXE和TFTP服务器使用的地址。

3.DHCP管理和DHCP服务器模板

通过修改manage_dhcp设置是否由cobbler管理dhcp服务器,cobbler是通过生成dhcpd.conf管理dhcp服务器的,所以我们需要自行安装dhcp服务。

dhcpd.conf依据模板生成,模板文件是/etc/cobbler/dhcp.template,我们可以自定义template的内容。

cobbler将镜像保存在/var/www/cobbler/ks_mirror目录中,所以对/var目录的空间依赖很重,请确保/var目录有足够的空间。

启动Cobbler和设置自启动

使用命令

systemctl start cobblerd.service启动cobbler服务,

使用

systemctl enable cobblerd.service设置cobbler开机启动。

使用

systemctl status cobblerd.service查看cobbler服务状态。

启动cobblerd服务之前首先启动httpd服务,否则使用cobbler check检查时会报错。

systemctl start httpd

然后执行systemctl start cobblerd

cobbler check会为配置pxe服务器提供进一步的建议,你需要依照建议依次解决这些问题。处理完成后重启cobblerd服务。

systemctl restart cobblerd

反复检查并解决后,使用cobbler sync命令初始化cobbler服务。

看到任务完成后cobbler的部署就算完成了,但是不要忘了允许TFTP和HTTP通过防火墙,如果你是用firewalld防火墙,允许他们通过的操作相对简单。

firewall-cmd --add-service=tftp --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd reload

当然也不要忘了保证dhcpd tftp httpd 的正常运行。

下面我们需要添加镜像,来使用cobbler。

首先下载需要的镜像,比如我是用CentOS 7 minimal镜像

将镜像挂载到合适的目录

mount -t iso9660 -o loop,ro CentOS-7-x86_64-Minimal-1708.iso /mnt                                                                                                                                                                                                                                                                                                       

然后使用cobbler import 命令添加镜像。

cobbler import --name=CentOS7 --arch=x86_64 --path=/mnt

添加完成会可以使用cobbler distro list 查看所有发行版,使用cobbler profile list 查看所有描述。

更详细的报告使用cobbler distro report –name=CentOS7-x86_64查看。

现在我们已经可以使用PXE启动了。

但是创建system object 可以使用cobbler更多的特征。使用命令

cobbler system add –name=test –profile=CentOS7-x86_64创建systemobject。

使用cobbler system list查看列表。

使用system 可以配置更多的信息。我现在还没有用到就不做介绍了,更多内容可以到cobbler官网查看。