Cobbler:
安装
前提:cobbler由epel源提供,故此需要事先配置指向epel的yum源方可进行类似下面的安装过程。
1 | # yum install cobbler cobbler-web pykickstart debmirror |
执行“cobbler check命令检查存的问题,而后逐一按提示解决之。常见的问题如下所示:
1 | 1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it. |
如上各问题的解决方法如下所示:
- 修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名,如172.16.100.15;
- 修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址,如172.16.100.16;
- 如果当前节点可以访问互联网,执行“cobbler get-loaders”命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目录中;
- 执行“chkconfig rsync on”命令即可;
- 注释/etc/debmirror.conf文件中的“@dists=”sid”;”一行;
- 注释/etc/debmirror.conf文件中的“@arches=”i386”;”一行;
- 执行“openssl passwd -1 -salt $(openssl rand -hex 4)”生成密码,并用其替换/etc/cobbler/settings文件中default_password_crypted参数的值;
- 执行“yum install cman fence-agents”命令安装相应的程序包即可;
接着重启cobblerd,而后执行“cobbler sync”同步新的配置至cobbler。
配置及启动cobbler所依赖的各服务
cobbler的运行依赖于dhcp、tftp、rsync及dns服务。其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler自带的tftp功能提供;rsync由rsync程序包提供;dns可由bind提供,也可由dnsmasq提供。
cobbler可自行管理这些服务中的部分甚至是全部,但需要配置/etc/cobbler/settings文件中的“manage_dhcp”、“manage_tftpd”、“manage_rsync”和“manage_dns”分别进行定义。另外,由于每种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。
本文采用了独立管理的方式,即不通过cobbler来管理这些服务。
配置dhcp服务
定义好所需的“subnet”及其它参数或选项,而后启动dhcpd守护进程即可。本示例中所用的dhcpd的配置如下所示:
1 | option domain-name "magedu.com"; |
接着使用“service dhcpd start”启动服务即可。
配置tftp服务
1 | # chkconfig tftp on |
配置cobbler
cobbler的各主要组件间的关系如下图所示。
管理distro
使cobbler变得可用的第一步为定义distro,其可以通过为其指定外部的安装引导内核及ramdisk文件的方式实现。而如果已经有完整的系统安装树(如CentOS6的安装镜像)则推荐使用import直接导入的方式进行。
例如,对于已经挂载至/media/cdrom目录的CentOS 6.5 x86_64的安装镜像,则可以使用类似如下命令进行导入。
1 | # cobbler import --name=centos-6.5-x86_64 --path=/media/cdrom |
可使用“cobbler distro list”列出所有的distro。
如果有kickstart文件,也可以使用“—kickstart=/path/to/kickstart_file”进行导入,因此import会自动为导入的distro生成一个profile。
管理profile
cobbler使用profile来为特定的需求类别提供所需要安装配置,即在distro的基础上通过提供kickstart文件来生成一个特定的系统安装配置。distro的profile可以出现在PXE的引导菜单中作为安装的选择之一。
因此,如果需要为前面创建的centos-6.5-x86_64这个distro提供一个可引导安装条目,其用到的kickstart文件为/tmp/centos-6.5-x86_64.cfg(只提供了最基本的程序包),则可通过如下命令实现。
1 | # cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos-6.5-x86_64.cfg |
可使用“cobbler profile list”查看已经创建的profile。
使用cobbler_web
配置cobbler_web的认证功能
cobbler_web支持多种认证方式,如authn_configfile、authn_ldap或authn_pam等,默认为authn_denyall,即拒绝所有用户登录。下面说明两种能认证用户登录cobbler_web的方式。
使用authn_pam模块认证cobbler_web用户
首先修改modules中[authentication]段的module参数的值为authn_pam。
接着添加系统用户,用户名和密码按需设定即可,例如下面的命令所示。
1 | # useradd cblradmin |
而后将cblradmin用户添加至cobbler_web的admin组中。修改/etc/cobbler/users.conf文件,将cblradmin用户名添加为admin参数的值即可,如下所示。
1 | [admins] |
最后重启cobblerd服务,通过
http://YOUR_COBBLERD_IP/cobbler_web访问即可
使用authn_configfile模块认证cobbler_web用户
首先修改modules中[authentication]段的module参数的值为authn_configfile。
接着创建其认证文件/etc/cobbler/users.digest,并添加所需的用户即可。需要注意的是,添加第一个用户时,需要为htdigest命令使用“-c”选项,后续添加其他用户时不能再使用;另外,cobbler_web的realm只能为Cobbler。如下所示。
1 | # htdigest -c /etc/cobbler/users.digest Cobbler cblradmin |
最后重启cobblerd服务,通过http://YOUR_COBBLERD_IP/cobbler_web访问即可。