cobbler是一个再次封装的PXE。核心概念:
Distribution:每一个distrbution是一个仓库,是一个可安装的发行版。具体如何安装需要其它组件定义。每个distribution都会依赖一个Repository才可以完成安装。distribution用来定义每个发行版的内核以及initrd的文件,来确定安装那个发行版的操作系统。内核启动后需要到repository中获取系统安装过程中的各个文件。
Repository:yum仓库,是distribution启动后必须要指定仓库的组件。
Profile: 每个profile包含了 distribution , kickstart file , repositories。
distrbution : profile需要指明这个profile是为那个distribution定义的。
repositories : 用来定义客户端启动引导时需要的内核,ramdisk等。只是启动用到不是安装时的内核。
kickstart file:自动应答文件。
System : 对profile再次抽象,为某个操作系统配置IP,MAC。它已具体到节点的配置了。
Image:如是虚拟环境,system可以直接指定image映像文件,下载后直接启动就可以了。这时repository只是一个yum仓库,因为虚拟系统不需要安装。
system 和 image 并非必须的组件
cobbler 运行中依赖的服务:
TFTP:用来存储网络引导时的 kernel 和 ramdisk
rsync:repository可以从光盘导入。也可以向互联网同步文件到repository。rsync是同步文件时用到的工具。
dhcp:用来为启动后的客户机分配ip,指定next-server。
dns:用来识别每个主机的主机名会用到,但非必须。
安装配置
cobbler位于epel源中
# yum list cobbler*
# yum install cobbler
cobbler依赖http服务,需要启动,在安装完成后会生成一个/var/www/cobbler目录,内部分别用来存储:
images:映像文件的存储位置
aux:辅助文件存储位置。
ks_mirror:各个自动应答文件的存储位置,与每个distrbution相对应。
repo_mirror:各个yum 仓库的映射
# service httpd start
# service cobblerd start
# ss -tnll 监听于25151说明已启动成功
# cobbler --help 获取cobbler命令的使用帮助
# cobbler check 检查cobbler环境,需要全部解决才可以,但有一些可以忽略。
# vim /etc/cobbler/settings
service: 172.16.2.16
next_server: 172.16.2.16 指向tfpt服务器的地址
# openssl passwd -1 -salt `openssl rand -hex 4` 生成密码,
# vim /etc/cobbler/settings 用生的密钥把默认的密钥替换掉
default_password_crypted: "$1$72b74cfb$nL62A3vP.zXDJr5YZyYD/."
# yum -y install fence-agents
# yum -y install pykickstart
# chkconfig rsync on
# service xinetd restart
# cp -r /usr/share/syslinux/* /var/lib/cobbler/loaders/
# cobbler sync
# service cobblerd restart
# cobbler sync
配置cobbler所依赖的服务
dhcp: 使用dhcp包或dnsmasq
dns:使用bind或dnsmasq
rsync:使用xinetd管理
tftp:使用tftp-server或都cobbler自带的tftp
dnsmasq : 可以提供dhcp 和dns 功能,一般用在嵌入环境中。
1,选定要使用的程序
2,确定是独立管理这些服务,还是由cobbler代为管理。
这里没有使用cobbler管理这些服务。
cobbler组件:
distro:可以使用distro命令或import命令实现
cobbler上distro可以有多个,同一个distro之上可以定义多个profile,每个profile使用kickstart文件。
# mount /dev/cdrom /mnt
# cobbler import --path=/mnt --name=centos-6.5-x86_64
导入过程是把光盘上的内容复制到/var/www/cobbler/ks_mirror/目录下与name同名的目录。这个目录下就是一个yum源。
# cobbler distro list 查看已导入的源
# wget -P /tmp http://172.16.0.1/centos6.x86_64.cfg 下载一个自动应答文件
# ksvalidator centos6.x86_64.cfg 检查自动应答文件是否有语法错误,如果有错误需要修改。如果自动安装时有错误还需要返回来修改。
# cobbler profile add --help 获取帮助
# cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos6.x86_64.cfg 添加一个profile名字叫centos-6.5-x86_64-basic , 为centos-6.5-x86_64这个distro添加,自动应答文件是/tmp/centos6.x86_64.cfg,
# cobbler profile list 查看刚创建的profile
# cobbler sync 把上面的配置同步一下。
修改profile的命令: cobbler profile edit --name=<被修改的profile> --distro=<基于那个distrbution> --kickstart=<应答文件>
修改完成后需要执行 cobbler sync 同步。cobbler sync 就是把创建或修改后的配置写入到/var/lib/tfptboot/pxelinux.cfg/default 。 这个文件的内容如下:与grub的配置文件相似。
=======================================
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | http://www.cobblerd.org/
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local
LABEL local 默认从本地硬盘引导
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1
LABEL centos-6.5-x86_64
kernel /images/centos-6.5-x86_64/vmlinuz
MENU LABEL centos-6.5-x86_64
append initrd=/images/centos-6.5-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://172.16.2.14/cblr/svc/op/ks/profile/centos-6.5-x86_64
ipappend 2
LABEL centos-6.5-x86_64-basic 这里是上面创建的profile
kernel /images/centos-6.5-x86_64/vmlinuz
MENU LABEL centos-6.5-x86_64-basic
append initrd=/images/centos-6.5-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://172.16.2.14/cblr/svc/op/ks/profile/centos-6.5-x86_64-basic 自动应答文件的位置
ipappend 2
MENU en
=======================================
cobbler web配置与用法
# yum install cobbler-web 由于使用的pythone研发,所以安装了Django。连接使用HTTPS所以安装了mod_ssl模块
# cd /etc/cobbler/
# vim modules.conf
[authentication]
module = authn_pam 修改使用pam认证
# useradd cbradmin 添加用户
# passwd cbradmin 用户的密码
# vim users.conf
[admins]
admin = "cobbler"
cobbler = ""
# service cobblerd restart
# service httpd restart
使用http协议访问。后加上路径/cobbler_web