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.rpmRetrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmwarning: /var/tmp/rpm-tmp.0eoNVV: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEYPreparing...                ########################################### [100%]

2、yum安装Cobbler组件                                                                     

yum install cobbler colbbler-web pykickstart debmirror

安装后cobbler的配置文件

[root@test cobbler]# lsauth.conf         completions       named.template  tftpd.templatecheetah_macros    dhcp.template     power           users.confcobbler_bash      dnsmasq.template  pxe             users.digestcobbler.conf      iso               reporting       versioncobblerd_rotate   ldap              rsync.exclude   zone.templatecobblerd.service  modules.conf      rsync.template  zone_templatescobbler_web.conf  mongodb.conf      settings

3、启动cobbler服务

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

4、检查cobbler的配置

首先要启动httpd服务service httpd startcobbler checkThe 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/rsync5 : debmirror package is not installed, it will be required to manage debian deployments and repositories6 : 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 one7 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use themRestart 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/settingsnext_service 192.168.254.2service  192.168.254.23 cobbler get-loaders4 vim /etc/xinetd.d/rsync   将disable改为no 重启xinetd服务6 生成随机密码[root@test tftpboot]# openssl passwd -1 -salt `openssl rand -hex 4`Password: $1$df831563$APGIddt4A3ggUkCWnVDYu17 yum -y install cman fenc-agents 可以不用安装

最后重启服务,同步数据

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

5、启动dhcp服务

service dhcpd start

DHCP的配置在此文中不描述

6、启动tftp服务

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

先用光盘去加载安装镜像

mount -r /dev/cdrom /var/ftp/pub/centos-6.4-x86_64cobbler 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 listdistros:   centos-6.4-x86_64profiles:   centos-6.4-x86_64           自动生成的profile可以删除   centos-6.4-x86_64-basic[root@test ~]# cobbler synctask started: 2014-12-11_164024_synctask started (id=Sync, time=Thu Dec 11 16:40:24 2014)running pre-sync triggerscleaning treesremoving: /var/www/cobbler/p_w_picpaths/centos-6.4-x86_64removing: /tftpboot/pxelinux.cfg/defaultremoving: /tftpboot/grub/efidefaultremoving: /tftpboot/grub/p_w_picpathsremoving: /tftpboot/p_w_picpaths/centos-6.4-x86_64removing: /tftpboot/s390x/profile_listcopying bootloaderstrying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /tftpboot/pxelinux.0copying: /var/lib/cobbler/loaders/pxelinux.0 -> /tftpboot/pxelinux.0trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /tftpboot/menu.c32copying: /var/lib/cobbler/loaders/menu.c32 -> /tftpboot/menu.c32trying hardlink /var/lib/cobbler/loaders/yaboot -> /tftpboot/yabootcopying: /var/lib/cobbler/loaders/yaboot -> /tftpboot/yabootcopying distros to tftpbootcopying files for distro: centos-6.4-x86_64trying 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/vmlinuztrying 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.imgcopying p_w_picpathsgenerating PXE configuration filesgenerating PXE menu structurecopying files for distro: centos-6.4-x86_64trying 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/vmlinuztrying 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.imgrendering TFTPD filesgenerating /etc/xinetd.d/tftpcleaning link cachesrunning post-sync triggersrunning python triggers from /var/lib/cobbler/triggers/sync/post/*running python trigger cobbler.modules.sync_post_restart_servicesrunning shell triggers from /var/lib/cobbler/triggers/sync/post/*running python triggers from /var/lib/cobbler/triggers/change/*running python trigger cobbler.modules.scm_trackrunning 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 -hUsage: 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 systemSetEnvIf Request_URI ".*/op/events/user/.*" dontlog# Log only what remainsCustomLog logs/access_log combined env=!dontlogWSGIScriptAlias /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" bjiaChanging password for user bjia in realm CobblerNew password: Re-type new password: 重启cobblerd、httpd服务[root@test cobbler]# service cobblerd restart[root@test cobbler]# service httpd restart

出现如上图界面。既可以用图形化操作来完成cobblerd服务配置了。