• cobbler之详细配置


    目录
        安装包

    作用:系统自动化安装,支持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中
    sync
    reposync    repo同步
    build iso
    command line search
    replication 复制
    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访问即可。  




    [星空刺] |-->一颗星辰一闪即逝,支撑它的唯有方向和目的
  • 相关阅读:
    【工利其器】必会工具之(三)systrace篇(1)官网翻译
    【工利其器】必会工具之(三)systrace篇(2)
    【朝花夕拾】Android安全之(一)权限篇
    【工利其器】必会工具之(二)Android开发者官网篇
    【朝花夕拾】四大组件之(二)Service篇
    【朝花夕拾】四大组件之(一)Broadcast篇
    【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
    【朝花夕拾】Android性能篇之(八)ANR篇--草稿
    Visual Studio容器项目工程化心得
    你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里
  • 原文地址:https://www.cnblogs.com/aaa103439/p/3d018608658a2c444b842cfa47861dda.html
Copyright © 2020-2023  润新知