Cobbler-自动化部署神器01

前言:
python

网络安装服务器套件 Cobbler(补鞋匠)从前,咱们一直在作装机民工这份颇有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后咱们顿觉身价倍增。再也不须要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、 TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,咱们就能够像哈里波特同样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是通常人都能整明白的,没有大专以上学历,通不过英语六级, 根本别想玩转。总而言之,这是一份多么有前途,多么有技术含量的工做啊。linux

很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功下降到初中如下,连补鞋匠都能学会。web

对于咱们这些在装机领域浸淫多年,经验丰富,老骥伏枥,志在千里的民工兄弟们来讲,不啻为一个晴天霹雳。windows

居然让我没法ZB岂有此理!!centos

笔者QQ:1760729969 【让咱们共同窗习ZB技巧吧】bash


1
我又使用最新的centos7.3进行的安装(2017.11.08),全程复制粘贴后,没有任何问题,若是你还有问题那说明什么?

j_0012.gif请认真看文档作,先全照搬而后再自我发挥服务器

1. Cobbler介绍网络

Cobbler是一个Linux服务器快速网络安装的服务,并且在通过调整也能够支持网络安装windows。app

该工具使用python开发,小巧轻便(才15k行python代码),能够经过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还能够管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。dom

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可从客户端配置虚拟机并从新安装系统。

Cobbler官网

wKiom1dCxcGSLKQeAADZsuOaaOY616.jpg


2.Cobbler各个组件之间关系:

wKioL1dCyxTAinKaAAH0I6yzrL8642.jpg


主要目的配置网络接口:

Cobbler知道如何更改文件系统以反应具体配置。由于系统配置的内部是抽象的,因此您能够仅关注想要执行的操做。

3.基础环境准备

centos6系列:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@cobbler ~] # cat /etc/redhat-release    #系统版本               
CentOS release 6.5 (Final)
[root@cobbler ~] # uname -r    #内核版本
2.6.32-431.el6.x86_64
[root@cobbler ~] # getenforce    #检测selinux是否关闭(必须关闭)                          
Disabled
[root@cobbler ~] # /etc/init.d/iptables status    #检测防火墙是否关闭(必须关闭)
iptables: Firewall is not running.
[root@cobbler ~] # ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $4}'    #查看IP地址
10.0.0.71
[root@cobbler ~] # hostname    #查看主机名
cobbler
[root@cobbler ~] # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
--2016-05-23 21:10:51--  http: //mirrors .aliyun.com /repo/epel-6 .repo
Resolving mirrors.aliyun.com... 115.28.122.210, 112.124.140.210
Connecting to mirrors.aliyun.com|115.28.122.210|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1083 (1.1K) [application /octet-stream ]
Saving to: “ /etc/yum .repos.d /epel .repo”     #cobbler安装必须使用到epel源
 
100%[====================================================================================>] 1,083       --.-K /s    in  0s

centos7系列:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@cobbler02 ~] # cat /etc/redhat-release     #系统版本
CentOS Linux release 7.2.1511 (Core) 
[root@cobbler02 ~] # uname -r                #内核版本
3.10.0-327.18.2.el7.x86_64
[root@cobbler02 ~] # getenforce              #检测selinux是否关闭(必须关闭)
Disabled
[root@cobbler02 ~] # systemctl status firewalld    #检测防火墙是否关闭(必须关闭)
● firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded ( /usr/lib/systemd/system/firewalld .service; disabled; vendor preset: enabled)
    Active: inactive (dead)
[root@cobbler02 ~] # ifconfig eth0|awk -F '[ :]+' 'NR==2{print $3}'
192.168.31.73 
[root@cobbler02 ~] # hostname
cobbler02  
[root@cobbler02 ~] # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
--2016-05-30 07:55:52--  http: //mirrors .aliyun.com /repo/epel-7 .repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 112.124.140.210, 115.28.122.210
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|112.124.140.210|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1084 (1.1K) [application /octet-stream ]
Saving to: ‘ /etc/yum .repos.d /epel .repo’
 
100%[===============================================================================================>] 1,084       --.-K /s    in  0s      
 
2016-05-30 07:55:52 (270 MB /s ) - ‘ /etc/yum .repos.d /epel .repo’ saved [1084 /1084 ]


4.安装Cobbler

centos6系列:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@cobbler ~] # yum install cobbler cobbler-web pykickstart httpd dhcp tftp-server-y
cobbler             #cobbler程序包
cobbler-web         #cobbler的web服务包
pykickstart         #cobbler检查kickstart语法错误
httpd               #Apache web服务
dhcp                #dhcp服务
tftp-server         #tftp服务
 
[root@cobbler ~] # rpm -ql cobbler  # 查看安装的文件,下面列出部分。
/etc/cobbler                   # 配置文件目录
/etc/cobbler/settings          # cobbler主配置文件,这个文件是yaml格式,cobbler是python写的程序。
/etc/cobbler/dhcp .template     # dhcp服务的配置模板
/etc/cobbler/tftpd .template    # tftp服务的配置模板
/etc/cobbler/rsync .template    # rsync服务的配置模板
/etc/cobbler/iso               # iso模板配置文件目录
/etc/cobbler/pxe               # pxe模板文件目录
/etc/cobbler/power             # 电源的配置文件目录
/etc/cobbler/users .conf        # web服务受权配置文件
/etc/cobbler/users .digest      # web访问的用户名密码配置文件
/etc/cobbler/dnsmasq .template  # DNS服务的配置模板
/etc/cobbler/modules .conf      # cobbler模块配置文件
/var/lib/cobbler               # cobbler数据目录
/var/lib/cobbler/config        # 配置文件
/var/lib/cobbler/kickstarts    # 默认存放kickstart文件
/var/lib/cobbler/loaders       # 存放的各类引导程序
/var/www/cobbler               # 系统安装镜像目录
/var/www/cobbler/ks_mirror     # 导入的系统镜像列表
/var/www/cobbler/p_w_picpaths        # 导入的系统镜像启动文件
/var/www/cobbler/repo_mirror   # yum源存储目录
/var/log/cobbler               # 日志目录
/var/log/cobbler/install .log   # 客户端系统安装日志
/var/log/cobbler/cobbler .log   # cobbler日志

centos7系列:

1
2
3
4
5
6
7
[root@cobbler02 ~] # yum install cobbler cobbler-web pykickstart httpd dhcp tftp-server -y
cobbler             #cobbler程序包
cobbler-web         #cobbler的web服务包
pykickstart         #cobbler检查kickstart语法错误
httpd               #Apache web服务
dhcp                #dhcp服务
tftp-server         #tftp服务