Cobbler无人值守安装

By | 2018年1月10日

1.Cobbler介绍

  • Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
  • Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
  • Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
  • Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。

1.1Cobbler集成的服务

  • PXE服务支持
  • DHCP服务管理
  • DNS服务管理(可选bind,dnsmasq)
  • 电源管理
  • Kickstart服务支持
  • YUM仓库管理
  • TFTP(PXE启动时需要)
  • Apache(提供kickstart的安装源,并提供定制化的kickstart配置)

2.安装Cobbler

[root@linux-node1 ~]yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd
[root@linux-node1 ~]rpm -ql cobbler  # 查看安装的文件,下面列出部分。
/etc/cobbler                  # 配置文件目录
/etc/cobbler/settings         # cobbler主配置文件,这个文件是YAML格式,Cobbler是python写的程序。
/etc/cobbler/dhcp.template    # DHCP服务的配置模板
/etc/cobbler/tftpd.template   # tftp服务的配置模板
/etc/cobbler/rsync.template   # rsync服务的配置模板
/etc/cobbler/iso              # iso模板配置文件目录
/etc/cobbler/pxe              # pxe模板文件目录
/etc/cobbler/power            # 电源的配置文件目录
/etc/cobbler/users.conf       # Web服务授权配置文件
/etc/cobbler/users.digest     # 用于web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template # DNS服务的配置模板
/etc/cobbler/modules.conf     # Cobbler模块配置文件
/var/lib/cobbler              # Cobbler数据目录
/var/lib/cobbler/config       # 配置文件
/var/lib/cobbler/kickstarts   # 默认存放kickstart文件
/var/lib/cobbler/loaders      # 存放的各种引导程序
/var/www/cobbler              # 系统安装镜像目录
/var/www/cobbler/ks_mirror    # 导入的系统镜像列表
/var/www/cobbler/images       # 导入的系统镜像启动文件
/var/www/cobbler/repo_mirror  # yum源存储目录
/var/log/cobbler              # 日志目录
/var/log/cobbler/install.log  # 客户端系统安装日志
/var/log/cobbler/cobbler.log  # cobbler日志

2.1配置Cobbler

启动cobbler后,执行 cobbler check 检查cobbler的配置,根据输出信息修改配置。配置文件位于 /etc/cobbler/settings ,最好先备份再修改。

# 一般而言要修改一下几项
# server,Cobbler服务器的IP。
sed -i 's/server: 127.0.0.1/server: 192.168.10.10/' /etc/cobbler/settings
# next_server,如果用Cobbler管理DHCP,修改本项,作用不解释,看kickstart。
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.10.10/' /etc/cobbler/settings
# 用Cobbler管理DHCP
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings
# 防止循环装系统,适用于服务器第一启动项是PXE启动。
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
# 设置新装系统的默认root密码为fhrootroot。
openssl passwd -1 -salt 'shengbo' 'fhrootroot'
# 将生成的字符串填入 /etc/cobbler/settings 中 default_password_crypted:后面
# 解决 loaders 不足
cobbler get-loaders  # 会自动从官网下载
# 修改 /etc/xinetd.d/tftp
disable = no
# 启动 tftp server
systemctl start tftp
# 重启cobbler并再次检查配置
systemctl restart cobblerd
cobbler check

2.2配置DHCP

# 修改cobbler的dhcp模版,不要直接修改dhcp本身的配置文件,因为cobbler会覆盖。
[root@linux-node1 ~]# vim /etc/cobbler/dhcp.template 
# 仅列出修改过的字段
……
subnet 192.168.10.0 netmask 255.255.255.0 {
     option routers             192.168.10.10;
     option domain-name-servers 10.19.8.10;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.10.100 192.168.10.200;
……

2.3同步cobbler配置

cobbler sync
# 查看 /etc/dhcp/dhcpd.conf,发现它与cobbler的dhcp配置模板相同。

3.cobbler命令行管理

3.1常用命令

  • cobbler check 核对当前设置是否有问题
  • cobbler list 列出所有的cobbler元素
  • cobbler report 列出元素的详细信息
  • cobbler sync 同步配置到数据目录,更改配置最好都要执行下
  • cobbler reposync 同步yum仓库
  • cobbler distro 查看导入的发行版系统信息
  • cobbler system 查看添加的系统信息
  • cobbler profile 查看配置信息

3.3导入镜像

[root@linux-node1 ~]# mount /dev/cdrom /mnt/  # 挂载CentOS7的系统镜像。
# 导入系统镜像
[root@linux-node1 ~]# cobbler import --path=/mnt/ --name=CentOS-7.1-x86_64 --arch=x86_64
# --path 镜像路径
# --name 为安装源定义一个名字
# --arch 指定安装源是32位、64位、ia64, 目前支持的选项有: x86│x86_64│ia64
# 安装源的唯一标示就是根据name参数来定义,本例导入成功后,安装源的唯一标示就是:CentOS-7.1-x86_64,如果重复,系统会提示导入失败。
[root@linux-node1 ~]# cobbler distro list  # 查看镜像列表
   CentOS-7.1-x86_64
# 镜像存放目录,cobbler会将镜像中的所有安装文件拷贝到本地一份,放在/var/www/cobbler/ks_mirror下的
# CentOS-7.1-x86_64目录下。因此/var/www/cobbler目录必须具有足够容纳安装文件的空间。
[root@linux-node1 ~]# cd /var/www/cobbler/ks_mirror/
[root@linux-node1 ks_mirror]# ls
CentOS-7.1-x86_64  config
[root@linux-node1 ks_mirror]# ls CentOS-7.1-x86_64/
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

4.定制化安装

cobbler system add --name=oldboy --mac=00:0C:29:7F:2F:A1 --profile=CentOS-7.1-x86_64 --ip-address=192.168.10.111 --subnet=255.255.255.0 --gateway=192.168.10.10 --interface=eth0 --static=1 --hostname=host-1 --name-servers=10.19.8.10
# --name 自定义,但不能重复
# 查看定义的列表
[root@linux-node1 ~]# cobbler system list
   oldboy
[root@linux-node1 ~]# cobbler sync

参考博客:http://blog.oldboyedu.com/autoinstall-cobbler/
Cobbler官方使用手册:http://cobbler.github.io/manuals/2.8.0/

发表评论

电子邮件地址不会被公开。 必填项已用*标注