一、cobbler工作原理
cobbler 实现自动化安装OS,是依赖于:网卡的PXE技术(dhcp client、tftp client ) + anaconda(linux上安装操作系统的程序) + dhcp(为需要安装操作系统的主机分配IP) + tftp(提供基于网卡引导时所需要的启动文件) + httpd(os install tree 的存放位置 ) 实现的。
cobbler不仅仅是一个pxe服务器,他还可以管理dns(bind),dhcp。一般数据中心里或者生产环境,是不允许dhcp, 但是pxe,必须需要dhcp,所以我们需要根据mac地址来分配IP,这样dhcp就不会影响到网络.
二、安装和cobbler配置
1.Cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包,
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安装完运行yum报错:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决方法
vim /etc/yum.repos.d/epel.repo
编辑[epel]下的baseurl前的#号去掉,mirrorlist前添加#号。
2. yum安装cobbler包
# yum -y install cman tftp-server dhcp cobbler cobbler-web pykickstart
3.下载安装debmirror
需要用debmirror来下载ubuntu 12.04的源,做本地源.目前debmirrors, 先装依赖包
#yum -y install ed patch perl perl-Compress-Zlib perl-Cwd perl-Digest-MD5 perl-Digest-SHA1 perl-LockFile-Simple perl-libwww-perl
#wget http://mirrors.sohu.com/fedora-epel/6Server/x86_64/debmirror-2.14-2.el6.noarch.rpm
#rpm -ivh debmirror-2.14-2.el6.noarch.rpm
三、配置cobbler
1.关闭SELinux和防火墙
# vi /etc/sysconfig/selinux
SELINUX=enforcing更改为SELINUX=disabled
# reboot
2.修改cobbler配置
# vi /etc/cobbler/setting
'next_server: 127.0.0.1' 替换本机IP地址 (DHCP服务地址)
'server: 127.0.0.1' 替换本机IP地址(cobbler服务地址)
'manage_dhcp: 0' 替换为 1(cobbler管理dhcp,后面用于同步更新配置信息[cobbler sync])
'manage_rsync: 0' 替换为 1 (cobbler管理rsync功能)
3.启动菜单
# cobbler get-loaders
5.配置tftp和rsync服务
# vi /etc/xinetd.d/tftp
修改成:disable=no
# vi /etc/xinetd.d/rsync
修改成:disable=no
6.修改DHCP模板(注释掉range dynamic-bootp 。不然你内网就会出现一个dhcp服务器)
# vi /etc/cobbler/dhcp.template
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
#range dynamic-bootp 192.168.1.100 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
next-server $next_server;
7.修改cobbler的默认密码(root账户密码)
用 openssl 生成一串密码后加入到 cobbler 的配置文件(/etc/cobbler/settings)里,替换 default_password_crypted 字段:
# openssl passwd -1 -salt 'random-phrase-here' 'root365'
$1$random-p$VmHqWoGjEnkSI5r2JIfZX0
# vi /etc/cobbler/settings
default_password_crypted: "$1$random-p$VmHqWoGjEnkSI5r2JIfZX0"
注意:这里保存的密码,将会用于批量部署机器中,root账户的登录密码。
8.设置debmirror
sed -i -e 's|@dists=.*|#@dists=|' /etc/debmirror.conf
sed -i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf
9.启动服务及检查cobbler环境
#chkconfig httpd on
#chkconfig cobblerd on
#chkconfig dhcpd on
#/etc/init.d/httpd restart
#/etc/init.d/cobblerd restart
#/etc/init.d/dhcpd restart
# cobbler sync (对cobbler所有修改,需要执行)
# cobbler check
四、创建distro
1. 挂载ISO镜像到/meida 目录
#mount -t iso9660 -o loop CentOS-6.4-x86_64-bin-DVD1.iso /media
2.从iso中导入OS,并将其命名为Centos6.4
#cobbler import --path=/media --name=centos6.4 --arch=x86_64
这需要一点时间,不要急。可查看/var/www/cobbler/ks_mirror/centos6.2-x86_64/目录文件生成情况
# cobbler sync
# cobbler list
distros:(通过distro找到安装的发行版)
centos6.4-x86_64
profiles:
systems:
repos:
images:
mgmtclasses:
packages:
files:
3.删除创建的distro
#cobbler distro remove --name=centos6.4-x86_64
4.管理profile(通过设置的profile找到kickstart文件,如果没有指定kickstart默认找/var/lib/cobbler/kickstarts/sample.ks,最后完成自动安装)
cobbler使用profile来为特定的需求类别提供所需要安装配置,即在distro的基础上通过提供kickstart文件来生成一个特定的系统安装配置。
distro的profile可以出现在PXE的引导菜单中作为安装的选择之一。
因此,如果需要为前面创建的centos-6.4-x86_64这个distro提供一个可引导安装条目,指定kickstart文件
#cobbler profile add --name=centos-6.4-x86_64-basic --distro=centos-6.4-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks_basic.cfg
5.删除创建的profile
#cobbler profile remove --name=centos-6.4-x86_64-basic
#cobbler report(进行信息查看)
五、部署测试
创建一台虚拟机测试一下,把虚拟机设置成网络 PXE 启动