cobbler使用手册

1.1 cobbler check

检查/etc/cobbler/settings配置.
强迫症患者希望看到的是:

No configuration problems found.  All systems go.

1.2 cobbler sync

同步配置.

1.3 cobbler list

列出所有的cobbler对象,如distros,profiles,systems,repos等等.

1.4 cobbler report

列出各对象的详细信息, cobbler list 是列出, cobbler report 就是详情.

1.5 cobbler import

导入安装的系统光盘镜像,完成后就会有一个对应的distros和profiles.

1.6 cobbler distro

查看导入的发行版系统信息.

cobbler distro add
cobbler distro copy
cobbler distro edit
cobbler distro find
cobbler distro list
cobbler distro remove
cobbler distro rename
cobbler distro report

1.7 cobbler profile

查看配置信息.

cobbler profile add
cobbler profile copy
cobbler profile dumpvars
cobbler profile edit
cobbler profile find
cobbler profile getks
cobbler profile list
cobbler profile remove
cobbler profile rename
cobbler profile report

1.8 cobbler system

查看添加的系统信息.

cobbler system add
cobbler system copy
cobbler system dumpvars
cobbler system edit
cobbler system find
cobbler system getks
cobbler system list
cobbler system poweroff
cobbler system poweron
cobbler system powerstatus
cobbler system reboot
cobbler system remove
cobbler system rename
cobbler system report

1.9 cobbler reposync

同步yum仓库到本地.

1.10 ks验证

1.10.1 cobbler getks

#For profiles:
cobbler profile getks --name=profile-name
#For systems:
cobbler system getks --name=system-name

1.10.2 cobbler validateks

检查ks语法,1)实际调用/usr/bin/ksvalidator来检查kickstart文件的语法,运行输出结果如下2):

task started: 2017-04-15_142445_validateks
task started (id=Kickstart Validation, time=Sat Apr 15 14:24:45 2017)
----------------------------
osversion: rhel7
checking url: http://10.1.1.100/cblr/svc/op/ks/profile/CentOS-7.3-x86_64
running: /usr/bin/ksvalidator -v "rhel7" "http://10.1.1.100/cblr/svc/op/ks/profile/CentOS-7.3-x86_64"
received on stdout: 
received on stderr: 
*** all kickstarts seem to be ok ***
*** TASK COMPLETE ***

官网页面

cobbler中可以导入多个系统镜像,比如CentOS-7.2,centos6.镜像name可以唯一标示它们.

  • cobbler 使用的前提就是定义distro;
  • distro 简单理解就是OS发行版;
#挂载OS安装镜像
mount -t iso9660 /dev/cdrom /mnt/
#导入镜像
cobbler import --path=/mnt/ --arch=x86_64
#列出镜像
cobbler distro list
#查看镜像细节
cobbler distro report --name=CentOS-7-x86_64
  • –path: 镜像路径;
  • –name: 为安装源定义一个名字;
  • –arch: 指定安装源是 32位、64位、ia64, 目前支持的选项有: x86│x86_64│ia64;
  • 安装源的唯一标示就是根据 name 参数来定义,本例导入成功后安装源的唯一标示就是:CentOS-7-x86_64;
  • 如果重复,系统会提示导入失败;
  • 如果有 kickstart 文件也可以使用 –kickstart=/path/to/kickstart_file 进行导入,import 会自动为导入的 distro 生成一个 profile.
  • cobbler会将镜像中的所有安装文件拷贝到本地一份放在 /var/www/cobbler/ks_mirror

profile可以理解为一种配置,一个镜像(distro)可以有多个配置(profile),这些profile可能使用不同的ks文件。考虑以下情况,我们有两批服务器,都安装CentOS-7.2,但两批服务器所需磁盘分区方式不同,预装的软件包也不一样,显然此时无法使用同一个ks文件,这时就需要借助cobbler的profile,我们建立两个profile,在两个profile中指定不同的ks文件,同一个distro,这样就实现差异化安装系统.

  • cobbler使用 profile 来为特定的需求类别提供所需要安装的配置,即在 distro 的基础上通过提供 kiskstart 文件来生成一个特定的系统安装配置;
  • distro 的 profile 可以出现在 PXE 的引导菜单中作为安装的选择之一;
  • 在第一次导入系统镜像后,cobbler会给镜像指定一个默认的 kickstart 自动安装文件: /var/lib/cobbler/kickstarts/sample_end.ks;
#新建profile
cobbler profile add --name=CentOS-7.2
#编辑profile,修改关联的ks文件
cobbler profile edit --name=CentOS-7.2 --kickstart=/var/lib/cobbler/kickstarts/test.ks
cobbler profile list
cobbler profile report --name=CentOS-7.2
#同步下cobbler数据,每次修改完都要镜像同步
cobbler sync

官网页面

system对象,或者说装机任务可以指派丰富的网络参数给OS,但是需要 snippets 的配合.

每一个system都指定了mac地址,profile,可以说是为每个客户端量身定制.

  • 可能从学习 kickstart 开始就有人想怎样能够指定某台服务器使用指定 ks 文件,kickstart 实现这功能可能比较复杂,但cobbler 就很简单了;
  • 区分一台服务器的最简单的方法就是物理 MAC地址 ,物理服务器的 MAC 地址在服务器上的标签上写了;
  • 根据机器的 MAC 地址,自动绑定 IP,网关,DNS 等来实现定制化安装;
  • profile级别就可以通过pxe来启动安装OS了,但是cobbler里更多的特性是围绕system对象来实现的,关于system的信息给得越多,cobbler也能做的越多;
  • 创建system对象的主要原因还是为了网络配置,仅适用于profile时,受限于DHCP,使用system就可以指定更多的网络配置参数,MAC是最重要的参数之一;

启动1个安装任务:3)

#添加丰富的网络参数来创建一个system对象(安装任务),只有符合的MAC才会得到任务.
#GATEWAY和HOSTNAME被写在/etc/sysconfig/network里,全局的生效,但CentOS-7的官文说这个文件已经被depreciated,试了下还是能用,估计cobbler下个版本会更新上来. 
#强迫症患者可以在/var/lib/cobbler/snippets/post_install_network_config第278行添加:
#echo "GATEWAY=$gateway" >> $devfile
cobbler system add --name=install_170 --profile=CentOS-7-1511 --hostname=test --dns-name=test.bbdops.com --mac-address=00:0C:29:0B:09:4E --interface=ens33 --ip-address=192.168.221.170 --subnet=255.255.255.0 --gateway=192.168.221.2 --name-servers="223.5.5.5 223.6.6.6" --static=1             --netboot-enabled=0
#同步配置
cobbler sync
#查看安装任务列表
cobbler system list
#列出任务详情
cobbler system report --name=test


新部署机器安装 yum 源并同步,建议使用内网 yum 源,在这里使用阿里云 yum 源.

#添加repo
cobbler repo add --name=CentOS-7.2 --mirror=http://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/ --arch=x86_64 --breed=yum
#同步repo
cobbler reposync 
#添加 repo 到对应的 profile
cobbler profile edit --name=CentOS-7.2  --repos="centos-7.2"

修改 kickstart文件,添加 $yum_config_stanza 到 %post %end 中间,如下:

%post
$yum_config_stanza
%end

添加定时任务,定期同步repo

echo "0 3 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >> /var/spool/cron/root

效果

效果

[core-0]
name=core-0
baseurl=http://192.168.56.11/cobbler/ks_mirror/CentOS-7-x86_64
enabled=1
gpgcheck=0
priority=1

[CentOS-7.2]
name=centos-7.2-openstack-mitaka
baseurl=http://192.168.56.11/cobbler/repo_mirror/centos-7.2-openstack-mitaka
enabled=1
priority=99
gpgcheck=0

6.1 cobbler管理dhcp

cobbler接管了系统dhcpd服务,但还是使用系统的dhcpd来给客户端分配IP地址,只是我们不需要直接配置dhcpd.conf,而是配置/etc/cobbler/dhcp.template,cobbler sync后cobbler会自动同步配置给dhcpd.conf,查看下/etc/cobbler/dhcp.template的内容,会发现下面代码,在我们添加system任务,cobbler sync之后,cobbler会更新这个文件到/etc/dhcp/dhcpd.conf,这段代码也会更新,作用就是匹配system里指定的mac地址,然后分配ip地址,没有匹配到mac地址的客户端全部拒绝,这就是dhcpd的功能,并不是cobbler自身实现的.

6.2 修改cobbler启动菜单信息

vim /etc/cobbler/pxe/pxedefault.template
 
MENU TITLE Cobbler | BBDOPS
 
cobbler sync

6.3 查看cobbler相关变量

cobbler profile dumpvars --name profile_name

6.4 使用 koan 客户端进行系统重装

#安装 koan 客户端
yum install -y koan
#查询 cobbler 服务器上的 profile
koan --server=10.1.1.100 --list=profiles
 
- looking for Cobbler at http://10.1.1.100/cobbler_api
CentOS-7-x86_64
CentOS-6-x86_64
 
#指定要重装的系统
koan --replace-self --server=10.1.1.100 --profile=CentOS-6-x86_64

如何避免 koan 安装错误机器,或者 cobbler 自动化安装错误机器。 解决方法:环境设计:配置装机 VLAN



1)
切记ks文件里不能有中文,不能运行会报错.
2)
建议浏览器打开checking url,可以看到实际系统要执行的操作.
3)
system任务中指定mac,ip等信息可以只给匹配mac的客户端安装系统,不干扰网段其它机器,假如网段其它机器意外从网络启动,也不会被刷掉系统,但你也可以不指定这些信息,那么同网段所有客户端都可以从cobbler中的dhcp获取IP地址及安装系统.
  • linux/os_provision/cobbler使用手册.txt
  • 最后更改: 2019/04/16 18:31
  • (外部编辑)