Cobbler介绍

   cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.改工具使用python开发,小巧轻便,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP,DNS,以及yum包镜像。

   Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。

1、安装Cobbler

需要EPEL的YUM源,否则就需要下载源码安装

[root@test ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.0eoNVV: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]

2、yum安装Cobbler组件                                                                     

yum install cobbler colbbler-web pykickstart debmirror

安装后cobbler的配置文件

[root@test cobbler]# ls
auth.conf         completions       named.template  tftpd.template
cheetah_macros    dhcp.template     power           users.conf
cobbler_bash      dnsmasq.template  pxe             users.digest
cobbler.conf      iso               reporting       version
cobblerd_rotate   ldap              rsync.exclude   zone.template
cobblerd.service  modules.conf      rsync.template  zone_templates
cobbler_web.conf  mongodb.conf      settings

3、启动cobbler服务

service cobblerd start
监听端口:
ss -tanulp
LISTEN     0      5                 127.0.0.1:25151                    *:*

4、检查cobbler的配置

首先要启动httpd服务
service httpd start
cobbler check
The following are potential configuration items that you may want to fix:

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.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : change 'disable' to 'no' in /etc/xinetd.d/rsync
5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
6 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
7 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.

错误解释

1:/etc/cobbler/settings/中的server必须要与外部指令交互的地址。 

2:PXE的服务必须要启动,/etc/cobbler/settings必须要指定web主机通信的地址。

3:pxe和cobbler等所需要的驱动文件。需要安装syslinux等插件

4:需要启动rsync服务

5:debmirror安装包还没有安装。如果不是安装debin系统可以忽略

6:需要定义密码

7:电源管理,需要安装cman,可以忽略

解决错误

1-2修改 vim /etc/cobbler/settings
next_service 192.168.254.2
service  192.168.254.2
3 cobbler get-loaders
4 vim /etc/xinetd.d/rsync   将disable改为no 重启xinetd服务
6 生成随机密码
[root@test tftpboot]# openssl passwd -1 -salt `openssl rand -hex 4`
Password: 
$1$df831563$APGIddt4A3ggUkCWnVDYu1
7 yum -y install cman fenc-agents 可以不用安装

最后重启服务,同步数据

[root@test cobbler]# service cobblerd restart 
Stopping cobbler daemon: [  OK  ]
Starting cobbler daemon: [  OK  ]
cobbler check
cobbler sync

5、启动dhcp服务

service dhcpd start

DHCP的配置在此文中不描述

6、启动tftp服务


二、导入安装光盘镜像文件

先用光盘去加载安装镜像

mount -r /dev/cdrom /var/ftp/pub/centos-6.4-x86_64
cobbler import --name="centos-6.4-x86_64" --path=/var/ftp/pub/centos-6.4-x86_64/
加载后可以查看distro
[root@test ~]# cobbler distro list
   centos-6.4-x86_64

制作一份kickstart.cfg文件。此文不再描述

创建一份profile,profile中需用到profile name distro(加载过的镜像文件) kickstart的文件路径
 cobbler profile add --name=centos-6.4-x86_64-basic --distro=centos-6.4-x86_64 --kickstart=/root/centos6.cfg
[root@test ~]# cobbler list
distros:
   centos-6.4-x86_64

profiles:
   centos-6.4-x86_64           自动生成的profile可以删除
   centos-6.4-x86_64-basic
[root@test ~]# cobbler sync
task started: 2014-12-11_164024_sync
task started (id=Sync, time=Thu Dec 11 16:40:24 2014)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/p_w_picpaths/centos-6.4-x86_64
removing: /tftpboot/pxelinux.cfg/default
removing: /tftpboot/grub/efidefault
removing: /tftpboot/grub/p_w_picpaths
removing: /tftpboot/p_w_picpaths/centos-6.4-x86_64
removing: /tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /tftpboot/pxelinux.0
copying: /var/lib/cobbler/loaders/pxelinux.0 -> /tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /tftpboot/menu.c32
copying: /var/lib/cobbler/loaders/menu.c32 -> /tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /tftpboot/yaboot
copying: /var/lib/cobbler/loaders/yaboot -> /tftpboot/yaboot
copying distros to tftpboot
copying files for distro: centos-6.4-x86_64
trying hardlink /var/www/cobbler/ks_mirror/centos-6.4-x86_64/p_w_picpaths/pxeboot/vmlinuz -> /tftpboot/p_w_picpaths/centos-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos-6.4-x86_64/p_w_picpaths/pxeboot/initrd.img -> /tftpboot/p_w_picpaths/centos-6.4-x86_64/initrd.img
copying p_w_picpaths
generating PXE configuration files
generating PXE menu structure
copying files for distro: centos-6.4-x86_64
trying hardlink /var/www/cobbler/ks_mirror/centos-6.4-x86_64/p_w_picpaths/pxeboot/vmlinuz -> /var/www/cobbler/p_w_picpaths/centos-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos-6.4-x86_64/p_w_picpaths/pxeboot/initrd.img -> /var/www/cobbler/p_w_picpaths/centos-6.4-x86_64/initrd.img
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***

查看加载后的配置选项

[root@test tftpboot]# cat /tftpboot/pxelinux.cfg/default 

LABEL centos-6.4-x86_64-basic
        kernel /p_w_picpaths/centos-6.4-x86_64/vmlinuz
        MENU LABEL centos-6.4-x86_64-basic
        append initrd=/p_w_picpaths/centos-6.4-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://192.168.254.2/cblr/svc/op/ks/profile/centos-6.4-x86_64-basic
        ipappend 2

至此,cobbler已经配置完成,可以启动物理机或者虚拟机PXE引导自动安装。


附加选项

cobbler system add -h  (配置接口服务的参数)
[root@test ~]# cobbler system add -h
Usage: cobbler [options]

Options:
  -h, --help            show this help message and exit
  --name=NAME           Name (Ex: vanhalen.example.org)
  --uid=UID             
  --owners=OWNERS       Owners (Owners list for authz_ownership (space
                        delimited))
         Virt Auto Boot (Auto boot this VM?)
  --ctime=CTIME         
  --mtime=MTIME         
  --power-type=POWER_TYPE
                        Power Management Type (valid options: drac,rsa,ilo,vir
                        sh,wti,ipmilan,bullpap,apc_snmp,integrity,lpar,ipmitoo
                        l,ether_wake,bladecenter)
  --power-address=POWER_ADDRESS
                        Power Management Address (Ex: power-
                        device.example.org)
  --power-user=POWER_USER
                        Power Username
  --power-pass=POWER_PASS
                        Power Password
  --power-id=POWER_ID   Power ID (Usually a plug number or blade name, if
                        power type requires it)
  --hostname=HOSTNAME   Hostname
  --gateway=GATEWAY     Gateway
  --name-servers=NAME_SERVERS
                        Name Servers (space delimited)
  --name-servers-search=NAME_SERVERS_SEARCH
                        Name Servers Search Path (space delimited)
  --ipv6-default-device=IPV6_DEFAULT_DEVICE
                        IPv6 Default Device
  --ipv6-autoconfiguration=IPV6_AUTOCONFIGURATION
                        IPv6 Autoconfiguration
  --mac-address=MAC_ADDRESS
                        MAC Address ((Place "random" in this field for a
                        random MAC Address.))
  --mtu=MTU             MTU
  --ip-address=IP_ADDRESS
                        IP Address
  --interface-type=INTERFACE_TYPE
                        Interface Type (valid options:
                        na,master,slave,bond,bond_slave,bridge,bridge_slave)
  --bonding=INTERFACE_TYPE
                        Interface Type (valid options:
                        na,master,slave,bond,bond_slave,bridge,bridge_slave)
  --interface-master=INTERFACE_MASTER
                        Master Interface
  --bonding_master=INTERFACE_MASTER
                        Master Interface
  --bonding-opts=BONDING_OPTS
                        Bonding Opts
  --bridge-opts=BRIDGE_OPTS
                        Bridge Opts
  --management=MANAGEMENT
  
......................................................

三、cobbler_web配置

核心配置文件

[root@test web]# cat /etc/cobbler/cobbler_web.conf 
# This configuration file enables the cobbler web
# interface (django version)



# Do not log the requests generated from the event notification system
SetEnvIf Request_URI ".*/op/events/user/.*" dontlog
# Log only what remains
CustomLog logs/access_log combined env=!dontlog

WSGIScriptAlias /cobbler_web /usr/share/cobbler/web/cobbler.wsgi

创建用户名和密码

vim /etc/cobbler/modules.conf

[authentication]
module = authn_configfile     #修改成authn_config用户配置模式

[root@test cobbler]# htdigest /etc/cobbler/users.digest "Cobbler" bjia
Changing password for user bjia in realm Cobbler
New password: 
Re-type new password: 
重启cobblerd、httpd服务
[root@test cobbler]# service cobblerd restart
[root@test cobbler]# service httpd restart

cobbler自动化安装详解_第1张图片

cobbler自动化安装详解_第2张图片出现如上图界面。既可以用图形化操作来完成cobblerd服务配置了。