前言:
基于上篇的内容,我们就已经可以搭建一个全自动化安装centos的服务了。不过如果我们想让它同时支持各种系统的安装,实现起来就比较复杂了。不同的系统,要用不同的引导启动 文件来安装,且还有不同的安装源以及kickstart文件等等。既然是复杂得事情,肯定能通过某种工具简化,而此次我们用到的就是传说中的cobbler来管理各个不同的源,pxe加载的内核文件等等。Let‘s do it!
正文:
老规矩,先描述一下加入cobbler以后整体的工作流程,已经cobbler能实现的功能。当一个需要安装系统的机器启动,会先从网络中dhcp服务器获取ip地址,以及获知pxe所处的tftp地址和文件,然后加载一个小的linux系统,从某个源获取安装程序,根据kickstart文件安装操作系统,虽然dhcp这个东东也可以让cobbler来管理,不过博主还是喜欢让它独立出来。默认cobbler会管理我们的tftp服务,以及http提供的源,所以,除了dhcp以外的所有流程,都可以通过cobbler管理以让整个实现更加简便~话不多说,开战!
首先得安装所需要的程序配置基本的服务,在上篇博客介绍到的服务我们讲不再介绍,请自行查看上篇博客,我们依然会用到,tftp,dhcp,http,syslinux程序。除了之前所需要的程序,我们还需要用到另外两个:cobbler和rsync(这里注意一下,cobbler是由epel源提供的哟)
yum install cobbler rsync -y
我们得得确保我们的tftp,dhcp,http已经启动!并能提供服务d。我们还得关闭selinux。设置/etc/selinux/config文件
#/etc/selinux/config SELINUX=disabled
启动cobbler服务
systemctl start cobbler #centos7系统哦
我们还得设置一下cobbler的配置文件:/etc/cobbler/settings,下面只显示修改过的部分
server: 192.168.6.100 #设置提供cobbler服务的主机ip next_server: 172.16.6.100 #提供pxe服务的主机ip default_passwd_crypted: $1$478cc085$Ppcqhrk7rPzGR5XqWx4iu0 #重新设置密码
上面那个密码我们得从新设置一下,我们可以用openssl生成密码
openssl passwd -1 -salt $(openssl rand -hex 4)
我们还得为cobbler提供安装系统的那个pxe相关的文件,保存到/var/lib/cobbler/loaders目录下
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/
然后我们来配置安装源,不过在生成源之前我们得介绍几个重要的组建
1.是我们的distro,这相当于我们的安装源,我们可以根据不同的系统创建不同的distro,此处推荐通过import安装镜像来构架distro。假如我们要安装centos6系统,并把这个distro命名为centos-6.5-x86_64
cobbler import --name=centos-6.5-x86_64 --path=/media/cdrom #一定要确定centos安装盘已挂载到/media/cdrom目录下
此过程是把安装盘的文件复制到cobbler对应的文件中,以构成一个distro
2.profile,cobbler使用profile来为特定的需求类别提供所需要安装配置,我们根据上面的distro创建一个profile
cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64
默认情况下,cobbler会生成pxe的default文件和kickstart文件,默认应该是最小话安装的,如果我们想要指定自己的kickstart文件可以这样:
cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos6.cfg
到此我们的cobbler就配置完了。有木有很简单!!!!现在我们同步cobbler的数据到硬盘上。这个步骤一定不能忘!!!!!不然安装过程会失败!!!命令如下
systemctl restart cobbler cobbler sync #同步数据
到此,我们就可以测试了!!!以下的可以不看~~~
如果在此过程中cobbler遇到什么问题可以用cobbler check 查看有没有错误,有不少提示是可以忽略的。以下几条不用关注,第一条是提示selinux,我们已经设置disabled了。第二条提示boot-loaders文件,我们已经从syslinux中复制,之后后面的也不用太关注,我们是centos7 不存在xinetd的问题,debmirror在7中也没有,fencing也不用关注。
The following are potential configuration items that you may want to fix: 1 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment: https://github.com/cobbler/cobbler/wiki/Selinux 2 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run ‘cobbler get-loaders‘ to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The ‘cobbler get-loaders‘ command is the easiest way to resolve these requirements. 3 : file /etc/xinetd.d/rsync does not exist 4 : debmirror package is not installed, it will be required to manage debian deployments and repositories 5 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them Restart cobblerd and then run ‘cobbler sync‘ to apply changes.