cobbler是一个再次封装的PXE。核心概念:python
Distribution:每个distrbution是一个仓库,是一个可安装的发行版。具体如何安装须要其它组件定义。每一个distribution都会依赖一个Repository才能够完成安装。distribution用来定义每一个发行版的内核以及initrd的文件,来肯定安装那个发行版的操做系统。内核启动后须要到repository中获取系统安装过程当中的各个文件。linux
Repository:yum仓库,是distribution启动后必需要指定仓库的组件。web
Profile: 每一个profile包含了 distribution , kickstart file , repositories。vim
distrbution : profile须要指明这个profile是为那个distribution定义的。centos
repositories : 用来定义客户端启动引导时须要的内核,ramdisk等。只是启动用到不是安装时的内核。服务器
kickstart file:自动应答文件。网络
System : 对profile再次抽象,为某个操做系统配置IP,MAC。它已具体到节点的配置了。app
Image:如是虚拟环境,system能够直接指定image映像文件,下载后直接启动就能够了。这时repository只是一个yum仓库,由于虚拟系统不须要安装。ide
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