Cobbler由python语言开发,是对PXE和 Kickstart以及DHCP的封装。融合很多特性,提供了CLI和Web的管理形式。更加方便的实行网络安装。同时,Cobbler也提供了API接 口,使用其它语言也很容易做扩展。它不紧可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装。更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理。
PXE 预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装操作系统。
Cobbler提供以下服务集成:
* PXE服务支持
* DHCP服务管理
* DNS服务管理
* 电源管理
* Kickstart服务支持
* yum仓库管理
本机:系统Centos6.5_x64
ip : 192.168.10.128
1、安装Cobbler
1
|
[root@master ~]
#yum install cobbler httpd rsync tftp-server xinetd dhcp python-ctypes cman pykickstart debmirror -y
|
1.1、Cobbler命令说明
命令参考
cobbler --help
cobbler distro --help
cobbler distro add --help
1.2、Cobbler配置文件说明
Cobbler配置文件存放在/etc/cobbler下
-
3 系统镜像数据目录/var/www/cobbler
导入的系统发行版,repos镜像和kickstart文件都放置在/var/www/cobbler目录下。确保/var目录有足够的空间来存储这些文件。
-
4 Cobbler数据目录/var/lib/cobbler
此目录存储和Cobbler profiles、systems、distros相关的配置
1.5 相关日志文件
------------------------------------------------------------------------------------------
web日志存放点
/var/log/httpd/access_log
/var/log/httpd/error_log
/var/log/httpd/ssl_access_log
/var/log/httpd/ssl_error_log
Cobbler日志
/var/log/cobbler/cobbler.log
/var/log/cobbler/install.log
通过Cobbler日志可以获取系统的安装状态
--------------------------------------------------------------------------------------------
1.6 配置Cobbler
[root@master ~]# vim /etc/cobbler/setting
1
2
3
4
5
6
|
242 manage_dhcp: 1
##启用cobbler管理DHCP功能
261 manage_rsync: 1
##启用cobbler管理rsync功能
246 manage_dns: 0
##启用cobbler管理dns,这里没有开启
272 next_server: 192.168.10.128
##DHCP服务地址
292 pxe_just_once: 1
##预防将机器中的安装循环配置为始终从网络引导
384 server: 192.168.10.128
##cobbler服务器地址
|
1.7配置tftp、rsync
1
|
[root@master ~]
# sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp
|
1
|
[root@master ~]
# sed -i 's/\=\ yes/\=\ no/g' /etc/xinetd.d/rsync
|
启用wsgi模块;Python应用程序或框架和Web服务器之间的一种接口
1
2
|
[root@master ~]
# cat /etc/httpd/conf.d/wsgi.conf
LoadModule wsgi_module modules
/mod_wsgi
.so
|
1.8 生成Cobbler安装系统root初始密码 # 这里生成密钥和配置默认密钥,后面ks文件引用、
1
2
3
4
|
[root@master ~]
# openssl passwd -1 -salt 'random-phrase-here' 'password'
$1$random-p$sFftrCTxKKsDZ.Sdr8mDG0
[root@master ~]
# vim /etc/cobbler/settings +101
101 default_password_crypted:
"$1$random-p$sFftrCTxKKsDZ.Sdr8mDG0"
|
1.9 配置DHCP
1
2
3
4
5
6
7
8
9
10
|
[root@master ~]
# vim /etc/cobbler/dhcp.template
21 subnet 192.168.10.0 netmask 255.255.255.0 {
# 分配所属网段
22 option routers 192.168.10.2;
# 默认网关
23 option domain-name-servers 192.168.10.2;
#dns ip
24 option subnet-mask 255.255.255.0;
#掩码
25 range dynamic-bootp 192.168.10.200 192.168.10.254;
# 分配地址段
26 filename
"/pxelinux.0"
;
##指定的网络引导程序
27 default-lease-
time
21600;
#租约时间,秒
28 max-lease-
time
43200;
#最大租约时间,秒
29 next-server 192.168.10.128;
#指定的TFTP服务器的地址
|
编辑dhcp配置文件,不然可能无法启动dhcp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@master ~]
# cat /etc/dhcp/dhcpd.conf |grep -v ^# |grep -v ^$
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set
vendorclass = option vendor-class-identifier;
option pxe-system-
type
code 93 = unsigned integer 16;
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.2;
option domain-name-servers 192.168.10.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.10.200 192.168.10.254;
filename
"/pxelinux.0"
;
default-lease-
time
21600;
max-lease-
time
43200;
next-server 192.168.10.128;
}
|
启动服务:
1
2
3
4
|
/etc/init
.d
/xinetd
start
/etc/init
.d
/dhcpd
start
/etc/init
.d
/cobblerd
start
/etc/init
.d
/httpd
restart
|
2.管理cobbler
1
|
[root@master ~]
# cobbler get-loaders
|
2.1 编辑debmiror
1
2
3
|
[root@master ~]
# vim /etc/debmirror.conf
28
#@dists="sid";
30
#@arches="i386";
|
2.2 检查cobbler配置 # 我们的防火墙及selinux已经关闭,下面提示先不管
1
2
3
4
|
[root@master ~]
# cobbler check
The following are potential configuration items that you may want to fix:
1 : since iptables may be running, ensure 69, 80
/443
, and 25151 are unblocked
Restart cobblerd and
then
run
'cobbler sync'
to apply changes.
|
2.3 完成后运行cobbler sync 命令让配置生效,使dhcp、http被cobbler接管,不然会报错
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
33
34
35
36
37
38
39
|
[root@master ~]
# cobbler sync
task started: 2014-09-11_082844_sync
task started (
id
=Sync,
time
=Thu Sep 11 08:28:44 2014)
running pre-
sync
triggers
cleaning trees
removing:
/var/lib/tftpboot/pxelinux
.cfg
/default
removing:
/var/lib/tftpboot/grub/grub-x86_64
.efi
removing:
/var/lib/tftpboot/grub/efidefault
removing:
/var/lib/tftpboot/grub/images
removing:
/var/lib/tftpboot/grub/grub-x86
.efi
removing:
/var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink
/var/lib/cobbler/loaders/grub-x86_64
.efi ->
/var/lib/tftpboot/grub/grub-x86_64
.efi
trying hardlink
/var/lib/cobbler/loaders/grub-x86
.efi ->
/var/lib/tftpboot/grub/grub-x86
.efi
copying distros to tftpboot
copying images
generating PXE configuration files
generating PXE menu structure
rendering DHCP files
generating
/etc/dhcp/dhcpd
.conf
rendering TFTPD files
generating
/etc/xinetd
.d
/tftp
cleaning link caches
rendering Rsync files
running post-
sync
triggers
running python triggers from
/var/lib/cobbler/triggers/sync/post/
*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: 关闭 dhcpd:[确定]
正在启动 dhcpd:[确定]
received on stderr:
running shell triggers from
/var/lib/cobbler/triggers/sync/post/
*
running python triggers from
/var/lib/cobbler/triggers/change/
*
running python trigger cobbler.modules.scm_track
running shell triggers from
/var/lib/cobbler/triggers/change/
*
*** TASK COMPLETE ***
|
3 上传ISO镜像至服务器
3.1 上传ISO镜像至服务器
1
2
3
4
5
6
7
|
[root@master ~]
# mkdir -p /opt/os/Linux/x64/Centos6.5/dvd
[root@master ~]
# mkdir /opt/os/Linux/x64/Centos6.2/dvd -p
[root@master ~]
# mkdir /opt/iso
[root@master iso]
# pwd
/opt/iso
[root@master iso]
# ls
CentOS-6.2-x86_64-bin-DVD1.iso CentOS-6.5-x86_64-bin-DVD1.iso
|
3.2 挂载ISO镜像
1
2
|
[root@master iso]
# mount -o loop /opt/iso/CentOS-6.5-x86_64-bin-DVD1.iso /opt/os/Linux/x64/Centos6.5/dvd/
[root@master ~]
# mount -o loop /opt/iso/CentOS-6.2-x86_64-bin-DVD1.iso /opt/os/Linux/x64/Centos6.2/dvd/
|
3.3 从DVD中导入OS数据
系统版本命名为centos6.5 架构x86_64,这时间长,耐性等待。可查看ls /var/www/cobbler/ks_mirror/centos6.5-x86_64/目录文件生成情况。
1
2
3
4
5
6
7
8
9
10
|
[root@master iso]
# cobbler import --path=/opt/os/Linux/x64/Centos6.5/dvd/ --name=centos6.5 --arch=x86_64
task started: 2014-09-14_051537_import
task started (
id
=Media
import
,
time
=Sun Sep 14 05:15:37 2014)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path
/var/www/cobbler/ks_mirror/centos6
.5-x86_64:
creating new distro: centos6.5-x86_64
************省略
Keeping repodata as-is :
/var/www/cobbler/ks_mirror/centos6
.2-x86_64
/repodata
*** TASK COMPLETE ***
|
查看导入的信息
1
2
|
[root@master ks_mirror]
# ls
centos6.2-x86_64 centos6.5-x86_64 config
|
3.4 列出导入后的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@master ~]
# cobbler list # # 列出详细信息可以使用cobbler report
distros:
centos6.2-x86_64
centos6.5-x86_64
profiles:
centos6.2-x86_64
centos6.5-x86_64
systems:
repos:
images:
mgmtclasses:
packages:
files:
|
查看配置是否存在
1
2
|
[root@master ~]
# cobbler profile find --distro=centos6.2-x86_64
centos6.2-x86_64
|
删除配置文件
1
|
[root@master ~]
# cobbler profile remove --name=centos6.2-x86_64
|
删除distro
1
|
[root@master ~]
# cobbler distro remove --name=centos6.2-x86_64
|
查看配置是否存在(已无) ##删掉后重新import下。便于后面安装测试多版本系统选择
1
|
[root@master ~]
# cobbler profile find --distro=centos6.2-x86_64
|
4.ks文件
4.1 定义ks文件,更改kickstart文件,可为http等,具体cobbler --help查看,这里采用我们自定制ks文件
默认ks文件位置,以.ks结尾 # 其中 sample.ks 为默认的ks文件
1
|
/var/lib/cobbler/kickstarts
|
4.2 更改指定系统版本对应的ks配置文件 #也可以自己编辑
1
2
3
4
|
[root@master kickstarts]
# cp sample.ks centos6u5-x64.cfg
[root@master kickstarts]
# cp sample.ks centos6u2-x64.cfg
[root@master ~]
# cobbler profile edit --name=centos6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6u5-x64.cfg
[root@master ~]
# cobbler profile edit --name=centos6.2-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6u2-x64.cfg
|
4.3 核实下配置详情
1
|
[root@master ~]
# cobbler report
|
4.4 查看系统列表
1
2
3
|
[root@master ~]
# cobbler distro list
centos6.2-x86_64
centos6.5-x86_64
|
4.5 同步Cobbler配置 ##建议先执行cobbler check进行配置检查再执行cobbler sync,修改cobbler配置后都需要执行此步骤 这里列出,字数限制
4.6 创建PXE菜单密码 增加装机安全设置菜单密码
生成hash密码
支持两种不同类型的密码: # sha1pass mypassword 或 openssl passwd -1 -salt sXiKzkus mypassword
1
2
|
[root@master ~]
# openssl passwd -1 -salt leo lansgg
$1$leo$RWzbs9Ic6zwRbYj9qpkHp.
|
4.7 编辑装机密码
1
2
3
|
[root@master ~]
# vim /etc/cobbler/pxe/pxedefault.template
MENU TITLE Automation Install System with pxe
#修改
MENU MASTER PASSWD $1$leo$RWzbs9Ic6zwRbYj9qpkHp.
#新增
|
1
2
|
[root@master ~]
# vim /etc/cobbler/pxe/pxeprofile.template
MENU PASSWD
#新增
|
一样进行 cobbler check ; cobbler sync
PXE装机时选择装机系统版本,输入装机密码,效果图 #这里密码为lansgg
测试系统已经装好;密码是password (上面配置好的)
本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1552525