前言:html
网络安装服务器套件 Cobbler(补鞋匠)从前,咱们一直在作装机民工这份颇有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后咱们顿觉身价倍增。再也不须要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、 TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,咱们就能够像哈里波特同样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是通常人都能整明白的,没有大专以上学历,通不过英语四级, 根本别想玩转。node
总而言之,这是一份多么有前途,多么有技术含量的工做啊。
python
很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功下降到初中如下,连补鞋匠都能学会。linux
对于咱们这些在装机领域浸淫多年,经验丰富,老骥伏枥,志在千里的民工兄弟们来讲,不啻为一个晴天霹雳。ios
笔者QQ:315420700 【让咱们共同窗习ZB技巧吧】github
1. Cobbler介绍shell
Cobbler是一个Linux服务器快速网络安装的服务,并且在通过调整也能够支持网络安装windows。apache
该工具使用python开发,小巧轻便(才15k行python代码),能够经过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还能够管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
Cobbler可使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,能够方便二次开发使用。
Cobbler是较早前的kickstart的升级版,优势是比较容易配置,还自带web界面比较易于管理。
Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。
Cobbler客户端Koan支持虚拟机安装和操做系统从新安装,使重装系统更便捷。
1)Cobbler能够干啥
使用Cobbler,您无需进行人工干预便可安装机器。Cobbler设置一个PXE引导环境(它还可使用yaboot支持PowerPC),并 控制与安装相关的全部方面,好比网络引导服务(DHCP和TFTP)与存储库镜像。当但愿安装一台新机器时,Cobbler能够:
1)使用一个之前定义的模板来配置DHCP服务(若是启用了管理DHCP)
2)将一个存储库(yum或rsync)创建镜像或解压缩一个媒介,以注册一个新操做系统
3)在DHCP配置文件中为须要安装的机器建立一个条目,并使用指定的参数(IP和MAC)
4)在TFTP服务目录下建立适当的PXE文件
5)从新启动DHCP服务来反应新的更改
6)从新启动机器以开始安装(若是电源管理已启动)
2)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可从客户端配置虚拟机并从新安装系统。
2.Cobbler各个组件之间关系:
主要目的配置网络接口:
Cobbler的配置结构基于一组注册的对象。每一个对象表示一个与另外一个实体相关联的实体(该对象指向另外一个对象,或者另外一个对象指向该对象)。当一个对象指向另外一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。如下对象类型的定义
Distros(发行版):表示一个操做系统,它承载了内核和initrd的信息,以及内核参数等其余数据
Profile(配置文件):包含一个发行版、一个kickstart文件以及可能的存储库,还包含更多特定的内核参数等其余数据
Systems(系统):表示要配给的额机器。它包含一个配置文件或一个景象,还包含IP和MAC地址、电源管理(地址、凭据、类型)、(网卡绑定、设置valn等)
Repository(镜像):保存一个yum或rsync存储库的镜像信息
Image(存储库):可替换一个包含不属于此类比的额文件的发行版对象(例如,没法分为内核和initrd的对象)。
基于注册的对象以及各个对象之间的关联,Cobbler知道如何更改文件系统以反应具体配置。由于系统配置的内部是抽象的,因此您能够仅关注想要执行的操做。
3.基础环境准备
centos6系列:
centos7系列:
注意:
4.安装Cobbler
centos6系列:
centos7系列:
5. 检测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配置文件中各服务的模块参数的值来实现。
centos6系列:
centos7系列:
检查配置文件,须要在cobblerd和httpd启动的状况下检查
centos6系列:
如上各问题的解决方法以下所示:
centos7系列:
5.1 配置DHCP
centos6系列:
centos7系列:
5.2 设置开机自启动
centos6系列:
centos7系列:
6.Cobbler的命令行管理(6和7的命令是一致的)
6.1导入镜像
6.2配置ks.cfg(使用centos7的镜像的时候,注意下方的ks.cfg要在安装包那里删除掉@server-policy,这玩意在7没有的,不要问我为啥会特地在这里写,由于爱过!!!!!!被伤过!!!!!)
这里是若是方向键不选择第二项就没法装机,不算自动化,咱们须要进行手动指定才能够彻底自动化
kickstart实现某台服务器使用指定ks文件可能比较复杂,可是Cobbler就很简单了,区分一台服务器的最简单的方法就是物理MAC地址。
VMware查看物理MAC地址
开启空的虚拟机开始装系统
新版 Cobbler 的 Web 界面使用的是 https
登陆URL: https://192.168.31.71/cobbler_web
/etc/cobbler/users.conf # Web服务受权配置文件
/etc/cobbler/users.digest # 用于web访问的用户名密码配置文件
#在Cobbler组添加ren用户,提示输入2遍密码确认
[root@cobbler kickstarts]# htdigest /etc/cobbler/users.digest "Cobbler" ren
Adding user ren in realm Cobbler
New password:
Re-type new password:
同步下
[root@cobbler kickstarts]# cobbler sync
附录:
添加repos源
客户机重装系统教程:1
centos7系列:
1)不指定详细system模板,让cobbler本身装一台centos7的镜像
2)指定设定好的系统配置,让系统生成一个指定的mac地址绑定的ip和其余你指定的东西
已经按照指定的system配置安装好了,可是这里出现了一个问题,双网卡的话,两个网段,如今的路由都是同一个了,因此上不了网了,求高手解决