简介
题图在这里个人觉得很适合(但是放了一个雨靴,本来是要放鞋子),因为鞋子和这里要说的cobbler,docker等都没有太强的联系性,除了cobbler有补鞋匠的意思之外,实在找不到线索可以联系起来了orz..
不过说实在的,cobbler将Linux的部署变得很简单并且快捷,非常适合运维人员对大量新设备进行批量安装的操作,而且也支持绑定mac地址进行无人值守的自动化安装,可以说是非常方便了。
Cobbler是基于Python语言编写的批量引导平台,其特点在于可以支持不同的系统镜像,同时基于pxe网络引导执行自动化系统安装。本文档制作意在指导操作者使用容器技术搭建易用和快速部署的Cobbler服务。 要顺利使用此文档,请提前参阅了解docker技术,kickstart技术和PXE网络引导。 有意思的是,百度百科将cobbler介绍为:Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。
Note: 不过我在后期的实际使用中发现,docker容器部署的方式在没有简化image的情况下,易用性不如直接安装服务好。这里给自己留个坑,一是在此版本的部署基础上继续优化镜像大小,二是继续调整容器部署方式。
其实我本人做这个事的目的是刚好练一下手,去再熟悉一下docker容器,敲定了思路以后在网上去找了一些资料,文章最后我会把参考资料也附上。
准备
首先你得先安装docker,在你本地先执行
yum -y install epel-release vim net-tools docker
我测试的时候使用的最小化安装所以额外还装了一些工具,主要的还是docker。
安装好了以后先启动docker, 我在使用centos7.2的时候在这一步遇到了报错:
Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false)
就是说你本机的SELinux和overlay2存储驱动不兼容,我这里是直接换了driver layer,换成了CentOS能支持的devicemapper
vim /etc/sysconfyg/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper"
Note: 容器默认的大小为10G,所以一般不修改的情况下这个cobbler容器只能加载1-2个最小化镜像,若有超过5G的ISO文件导入,则容器会因空间不足而不支持导入操作,所以如果需要安装的ISO体量较大,可以在此处添加--storage-opt dm.basesize=40G,将容器的大小调整成40G以支持更多更大的镜像。如果在修改空间前已经启动过docker,需要rm -rf /var/lib/docker目录后重启docker以便让新配置生效。 ---所以当时的头脑一热还是给自己挖了很多坑啊...
建立镜像
dockers启动以后我们就可以开始建立镜像了。这个文档一并把建立docker镜像的步骤也包含了,所以你会在下面看到我使用的dockerfile,这个dockerfile很大程度上参考了国外一位技术人员的博文。
FROM centos:7.2.1511
MAINTAINER rex657
RUN yum -y install epel-release vim net-tools
RUN yum -y install httpd tftp cobbler cobbler-web dhc