目录
作用:系统自动化安装,支持linux,也支持win
distros(发行版) cobbler依靠此组件去读取外部的kernel和initrd,即系统版本profiles and sub-profiles cobbler依靠此组件将kickstart文件和distros文件关联起来,构建自动化的整体配置信息,提供系统的初始化安装信息(sub-profiles提供额外信息)systems cobbler借助此组件来配置网络接口repos(profiles的补充组件) cobbler借助此组件完成软件安装,一个yum源images(systems的补充组件) cobbler借助此组件完成特定功能组件的继承关系:distros>>profiles>>systems,即配置后一个,均需要指定前一个组件名
还有一些软件分发组件,不过这个不好用,因此可以用puppet替代
相关信息>>[*]非必须 {*}必须
列出当前已经配置好的组件信息:cobbler [组件] list --不加组件,则显示所有组件
删除组件信息:cobbler {组件} remove --name=对应组件的配置名
修改组件信息:cobbler {组件} edit --name=对应组件的配置名 继承关系的关联配置名 [--distros=] [--kickstart=]
|__ cobbler profiles edit --name=centos-6.4-x86_64-develop --distros=centos-6.4-x86_64 --kickstart=centos-6.4-x86_64.cfg
命令:
import 可以将一个完整的系统光盘的kernel和initrd导出到cobbler中syncreposync repo同步build isocommand line searchreplication 复制validate kickstart
1.安装包(属于epel源,请先配置好epel,这里就不说怎么搞了,然后直接yum以下安装包)
如果安装过程提醒gpgcheck的话
则加入--nogpgcheck
cobbler httpd cobbler-web(提供网络接口) debmirror pykickstart
/etc/cobbler/settings --定义主配置信息
/etc/cobbler/modules.conf --定义cobbler可以管理的服务模块
/etc/cobbler/users.digest --定义账号密码,关联web访问
路径里面存放了多个服务样板,均以template后缀显示
3-1.启动httpd服务.(进行cobbler check命令检查前,必须先启动httpd服务),并且关闭selinux
#service cobblerd start
3-2.cobbler check --检查cobbler环境错误,依据错误提示进行更正
常见的所需更正的错误如下:
>>#vim /etc/cobbler/settings
next_server: tftp_ip
server: tftp_ip#一般来说,tftp就是cobbler自身,故而此处ip均填写自身ip,不要使用127.0.0.1
>>#关闭selinux
>>#cobbler get-loaders --下载bootloader所需文件
pxelinux.0 menu.c32 --与pc server有关的文件,这里是linux所需的
>>#清空iptables规则,并关闭iptables,如果是内网的话,或者,开启69,80/443,25151端口
>>#vim /etc/xinetd.d/rsync
|__ disable = no
#chkconfig rsync on
>>#vim /etc/debmirror.conf,注释以下两项
#@dists="sid"
#@arches="i386"
>>#openssl passwd -1 -salt `openssl rand -hex 4` --生成8位随机数,并加上输入的密码,组成一个新的加密密码
修改/etc/cobbler/settings
default_password_crypted:"加入生成的加密密码"
>>#yum install fence-agents
3-3.再次重启服务,并检查
3-4.同步cobbler
>>#cobbler sync
同步后,会在tftp下生成多个文件/var/lib/tftpboot/*
4-1.修改/etc/cobbler/settings
查看manage_*开头的标签,dhcp默认参数是0,tftp默认参数是1
0表示不使用/etc/cobbler/modules.conf中的托管服务功能,1表示使用;若不使用托管,则需要自己手动配置各种服务.
4-2.这里我们就使用默认配置,即手动配置dhcp服务,tftp托管
>>#yum install dhcp tftp-server
>>#dhcp和tftp服务具体配置信息可以参照PXE简要配置过程
4-3.命令行模式配置cobbler
定义一个cobbler系统自动化配置
>>挂载系统光盘
#mount /dev/cdrom /media
>>定义distro,提供内核文件(使用import方式,即将内核和init文件放置于自身,而不是外部).
#cobbler import --name="rhel6-6.4-x86_64" --path=/media/
文件默认导入到/var/www/cobbler,--path定义光盘挂载位置
#cobbler distro list
rhel-6.4-x86_64
如果同一个内核,而所需软件不同,则多次执行以下三步即可
>>提供kickstart文件,提供安装模板,便于profile中调用.
#yum install -y system-config-kickstart
利用system-config-kickstart,并将生成的文件改名为rhel-6.4-x86_64.cfg,名字什么的其实无所谓.具体文件参考:cobbler之ks文件示例
>>定义profile,profile的名字将会在启动菜单中显示.(profile是从distro继承过来的,故而需要指定distro)
#cobbler profile add --name=rhel-6.4-x86_64-basic --distro=rhel-6.4-x86_64 --kickstart=/root/rhel-6-x86_64.cfg
#cobbler profile list
rhel-6.4-x86_64-basic
>>同步cobbler
#cobbler sync
依据同步信息,可以看出vmlinuz和initrd.img被连接到/var/lib/tftpboot/images/,即从网站目录连接到了ftp服务器上.
trying hardlink /var/www/cobbler/ks_mirror/centos-6.5-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/rhel-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos-6.5-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/rhel-6.4-x86_64/initrd.img
>>查看菜单文件,即引导文件pxelinux.cfg,这里定义了cobbler的所有发行版的内核路径和initrd路径以及ks模板路径
查看/var/lib/tftpboot/pxelinux.cfg/default,ks的路径可能有点问题
直接选择默认安装方式,设置非手动
>>至此cobbler已经可以正常工作.
5-1.cobbler_web的bug修复
当前epel源中提供的cobbler_web(程序包为cobbler-2.2.3-2.el6.noarch)存在bug,其/usr/share/cobbler/web/settings.py文件的内容需要修改为如下内容。
# Django settings for cobbler-web project.
import django
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)
MANAGERS = ADMINS
DATABASE_ENGINE = '' # cobbler-web does not use a database
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''
# Force Django to use the systems timezone
TIME_ZONE = None
# Language section
# TBD.
LANGUAGE_CODE = 'en-us'
USE_I18N = False
SITE_ID = 1
# not used
MEDIA_ROOT = ''
MEDIA_URL = ''
ADMIN_MEDIA_PREFIX = '/media/'
SECRET_KEY = ''
# code config
if django.VERSION[0] == 1 and django.VERSION[1] < 4:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
)
else:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
if django.VERSION[0] == 1 and django.VERSION[1] < 2:
# Legacy django had a different CSRF method, which also had
# different middleware. We check the vesion here so we bring in
# the correct one.
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.csrf.middleware.CsrfMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
else:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
ROOT_URLCONF = 'urls'
TEMPLATE_DIRS = (
'/usr/share/cobbler/web/templates',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'cobbler_web',
)
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
)
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
SESSION_FILE_PATH = '/var/lib/cobbler/webui_sessions'
5-2 配置cobbler_web的认证功能
cobbler_web支持多种认证方式,如authn_configfile、authn_ldap或authn_pam等,默认为authn_denyall,即拒绝所有用户登录。下面说明两种能认证用户登录cobbler_web的方式。
>>使用authn_pam模块认证cobbler_web用户
首先修改modules.conf中[authentication]段的module参数的值为authn_pam。
接着添加系统用户,用户名和密码按需设定即可,例如下面的命令所示。
# useradd cblradmin
# echo 'cblrpass' | passwd --stdin cblradmin
而后将cblradmin用户添加至cobbler_web的admin组中。修改/etc/cobbler/users.conf文件,将cblradmin用户名添加为admin参数的值即可,如下所示。
[admins]
admin = "cblradmin"
最后重启cobblerd服务,通过http://YOUR_COBBLERD_IP/cobbler_web访问即可。
>>使用authn_configfile模块认证cobbler_web用户
首先修改modules.conf中[authentication]段的module参数的值为authn_configfile。
接着创建其认证文件/etc/cobbler/users.digest,并添加所需的用户即可。需要注意的是,添加第一个用户时,需要为htdigest命令使用“-c”选项,后续添加其他用户时不能再使用;另外,cobbler_web的realm只能为Cobbler。如下所示:
# htdigest -c /etc/cobbler/users.digest Cobbler cblradmin
最后重启cobblerd服务,通过http://YOUR_COBBLERD_IP/cobbler_web访问即可。