1、Cobbler简介
使用PXE批量部署时,有一个缺陷,即只能安装单一的操作系统(同一个版本,仅用一个kickstart文件)。但是在实际环境中,不同功能的服务器需要部署不同的环境,而cobbler正好满足了这一需求。cobbler基于python开发,是对PXE的二次封装,且提供了CLI和Web的管理形式,使得操作和管理更加简便。cobbler的实现与PXE类似,也需要tftp,httpd,dhcp这些服务。使用yum即可完成cobbler的安装,在安装的同时也会自动安装tftp和httpd服务,dhcp服务需要自行安装。
cobbler的部署非常简单,首先添加distro,或直接导入光盘镜像,然后为某一个distro添加kickstart文件,一个distro可有多个kickstart文件,以实现同一版本的操作系统部署多个不一样的环境。
2、部署cobbler等服务
实验环境:所有的服务均部署在同一台服务器上(192.168.3.10)
2.1 安装cobbler
1 | [root@node1 ~]# yum install cobbler |
这个过程会自动安装tftp,httpd
2.2 自行安装dhcp。
1 | [root@node1 ~]# yum install dhcp |
tftp,httpd,dhcp,还包括DNS这些服务都可以由cobbler代为管理,也可以独立管理。这里都将这些服务设置为单独管理。
1 | [root@node1 ~]# vim /etc/cobbler/settings |
配置dhcp服务
1 | [root@node1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf |
检查配置,启动服务
1 | [root@node1 ~]# service dhcpd configtest |
2.3 启动tftp和rsync
1 | [root@node1 ~]# chkconfig tftp on |
2.4 启动cobbler服务
在启动cobbler之前首先需要启动httpd服务
1 | [root@node1 ~]# service httpd start |
然后使用cobbler check检查cobbler的运行环境,第一次运行可能会存在如下错误():
1 | [root@node1 ~]# cobbler check |
依次解决以上错误
1) 设置server参数为cobbler服务器的IP地址
1 | # vim /etc/cobbler/settings |
2) 设置next_server为pxe服务器的IP地址
1 | # vim /etc/cobbler/settings |
3) 若仅为x86/x86_64架构的服务器提供服务,安装syslinux即可
1 | # yum install syslinux |
4) 这一项可以忽略
5) 安装ksvalidator
1 | # yum install -y pykickstart |
6) 为default_password_crypted参数设置新密码
1 | # openssl passwd -1 -salt `openssl rand -hex 6` |
7) install cman or fence-agents(可不装)
2.5 修改完成后,重启服务
1 | [root@node1 ~]# cobbler sync |
3、添加distro
3.1 挂载光盘镜像
1 | [root@node3 ~]# mount /dev/cdrom /mnt/flash/ |
添加一个distro(若有光盘镜像,推荐直接导入光盘镜像)
1 | [root@node1 ~]# cobbler import --name=CentOS-6.5-x86_64 --path=/mnt/flash/ |
若镜像文件很大,导入过程会很长。导入完成后,在/var/www/cobbler/ks_mirror目录下会生成一个–name指定的名称的目录,这个目录与挂载在本地的光盘镜像目录一致。
3.2 制作kickstart文件
kickstart文件的制作非常简单。
首先安装system-config-kickstart
1 | [root@node1 ~]# yum install system-config-kickstart |
执行system-config-kickstart启用图形界面进行配置(使用xmanager之类的连接程序)
1 | [root@node1 ~]# system-config-kickstart |
配置的过程与安装操作系统差不多,按照提示一个一个配置即可。在配置之前需要先挂载光盘镜像,并且将该光盘镜像作为本地的yum源,在Package Selection这一项即会显示该光盘镜像中可安装的软件包。
若配置的是其他版本操作系统的ks文件,将对应的光盘镜像文件作为本地的yum源即可,例如需要为centOS7制作ks文件。
换成centOS7的ISO文件。
在/etc/yum.repos.d目录下添加本地的repo文件,清理之前的缓存,然后挂载。
1 | [root@CentOS-6 ~]# yum clean all |
Package Selection即为centOS7镜像光盘上的软件包。需要注意的是system-config-kickstart不支持LVM,若需要添加LVM还需要在ks文件中手动进行修改。
3.3 为distro添加profile
即为某个distro提供kickstart文件来生成一个特定的系统安装配置。例如为刚才添加的distro( centos-6.5-x86_64)添加一个kickstart文件。
首先验证ks文件是否存在语法错误,然后复制到指定目录下添加:
1 | [root@node1 ~]# ksvalidator ks.cfg |
添加第二个profile
1 | [root@node1 ~]# cp /root/ks-mysql.cfg /var/lib/cobbler/kickstarts/ |
list查看添加的profile
1 | [root@node1 kickstarts]# cobbler profile list |
添加完成之后执行cobbler sync,然后就可以使用了。
1 | [root@node3 ~]# cobbler sync |
4、测试
新添加一台虚拟机,不安装操作系统
选择需要的版本,开始安装