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