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

实验平台:rhel 6.3 x86_64 
  1. cobbler.laoguang.me     192.168.1.23 
一.环境准备
1.1 安装dhcp
  1. yum -y install dhcp 
1.2 安装其它所需服务如:tftp xinetd httpd   ##靠tftp传输文件,tftp依赖xinetd,httpd这个我暂时不清楚
  1. yum -y install tftp xinetd httpd 
1.3 关闭selinux iptables
  1. setenforce 0 
  2. service iptables stop 
二.安装cobbler
2.1 下载安装cobbler与依赖的包python-yaml
下载地址:http://www.kuaipan.cn/file/id_33139203151758501.html ,其它平台的可以去http://rpm.pbone.net/找,这个网站你一定不能忘记
  1. yum -y --nogpgcheck localinstall cobbler-2.2.2-1.el6.rf.noarch.rpm \
  2. python-yaml-3.09-3.el6.rf.x86_64.rpm 
2.2 启动cobbler
  1. service cobblerd start 
2.3 启动httpd
  1. service httpd start 
2.4 启用xinetd
  1. service xinetd start 
2.4 cobbler 检查配置
  1. cobbler check 
  1. -------------------------------------------- 
  2. The following are potential configuration items that you may want to fix: 
  3.  
  4. 1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost,
  5.  or kickstarting features will not work.  This should be a resolvable hostname the or IP for boot 
  6. server as reachable by all machines that will use it. 
  7.  
  8. 修改/etc/cobbler/settings 中server选项为: 
  9. server: 192.168.1.23 
  10.  
  11. 2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to 
  12. something other than 127.0.0.1, and should match the IP of the boot server on the PXE network. 

  13. 修改/etc/cobbler/settings 中next_server选项为: 
  14. next_server: 192.168.1.23      
  15.  
  16. 3 : Must enable a selinux boolean to enable vital web services components, run: setsebool -P httpd_
  17. can_network_connect true 
  18.  
  19. 关闭selinux 
  20.  
  21. 4 : you need to set some SELinux content rules to ensure cobbler serves content correctly in your 
  22. SELinux environment, run the following: /usr/sbin/semanage fcontext -a -t public_content_t "/var/
  23. lib/tftpboot/.*" && /usr/sbin/semanage fcontext -a -t public_content_t "/var/www/cobbler"/p_w_picpaths/.* 
  24.  
  25. 关闭selinux 
  26.  
  27. 5 : you need to set some SELinux rules if you want to use cobbler-web (an optional package), run the following:
  28.  /usr/sbin/semanage fcontext -a -t httpd_sys_content_rw_t "/var/lib/cobbler/webui_sessions/.*" 
  29.  
  30. 关闭selinux 
  31.  
  32. 6 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' 
  33. to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed
  34.  a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory,
  35.  should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. 
  36. The 'cobbler get-loaders' command is the easiest way to resolve these requirements. 
  37.  
  38. 运行cobbler get-loaders  
  39. cobbler get-loaders   ## 前提你能上网,出现*** TASK COMPLETE *** 代表ok 
  40.  
  41. 7 : change 'disable' to 'no' in /etc/xinetd.d/rsync 
  42.  
  43. 我们不用rysnc同步文件,如果用的话修改/etc/xinetd.d/rsync 
  44. vi /etc/xinetd.d/rsync 
  45. disable = no 
  46.  
  47. 8 : reposync is not installed, need for cobbler reposync, install/upgrade yum-utils? 
  48.  
  49. 可以不用理会,因为我们不用rsync同步ISO 
  50.  
  51. 9 : yumdownloader is not installed, needed for cobbler repo add with --rpm-list parameter, install/upgrade yum-utils? 
  52.  
  53. 同上
  54.  
  55. 10 : debmirror package is not installed, it will be required to manage debian deployments and repositories 
  56.  
  57. 我们不是debian可以不用理会 
  58.  
  59. 11 : ksvalidator was not found, install pykickstart 
  60.  
  61. 安装pykickstart 
  62. yum -y install pykickstart 
  63.  
  64. 12 : The default password used by the sample templates for newly installed machines (default_password_crypted 
  65. in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here'
  66.  'your-password-here'" to generate new one 
  67.  
  68. 修改cobbler的密码,防止其它正常主机由pxe启动后安装系统 
  69. openssl passwd -1 -salt 51cto laoguang   ##生成密码 
  70. $1$51cto$nTnuekFUB6sByi97bt7df/   ##将它复制到setting中 
  71. vi /etc/cobbler/settings
  72. default_password_crypted: "$1$51cto$nTnuekFUB6sByi97bt7df/" 
  73. ----------------------------------------- 
2.5 重启cobbler 
  1. service cobblerd restart 
三.cobbler的配置
3.1 导入欲安装的系统的镜像文件 
将redhat 6.3 x86_64 的ISO挂载/cdrom
  1. mount /dev/cdrom /cdrom 
导入需要的安装文件到cobbler的/var/www/cobbler/ks_mirrors下,并生成一profile,此过程需要一段时间,耐心等待
  1. cobbler import --path=/cdrom --name=RedHat-6.3-x86_64 
3.2 配置dhcp服务,让cobbler来管理
  1. vi /etc/cobbler/settings 
  2. manage_dhcp: 1 
3.3 修改/etc/cobbler/dhcp.template模板文件中的配置,其它的默认即可
  1. vi /etc/cobbler/dhcp.template 
  2.  
  3. subnet 192.168.1.0 netmask 255.255.255.0 {       ##根据需要修改 
  4.      option routers             192.168.1.1;     ##路由ip 
  5.      #option domain-name-servers 192.168.1.1;    ##dns的ip,我没使用 
  6.      option subnet-mask         255.255.255.0;   ##掩码 
  7.      range dynamic-bootp        192.168.1.100 192.168.1.254;  ##dhcp分配的ip范围 
  8.      filename                   "/pxelinux.0";    
  9.      default-lease-time         21600;           ##dhcp的默认释放时间 
  10.      max-lease-time             43200;           ##最大时间  
  11.      next-server                $next_server;    ##pxe使用的ip,$next_server在setting中定义的你忘了吗 
3.4  同步cobbler配置
  1. cobbler sync 
cobbler会自动进行初始化工作,移除已经存在的启动项,然后根据模板拷贝loader文件。之后再生成pxe的配置文件,生成dhcp的配置文件,最后再重启dhcp服务。关键查看dhcp,tftp有没有启动成功。
四.测试安装系统
4.1  新建个虚拟机,网络记的是brige哦,新建的虚拟机网络默认是nat的,我就因为这个怎么都安装不上,启动虚拟机,调整启动顺序从网络启动(我用的是vmware,如果你没有挂cd的iso,也虚拟机是新建的直接启动应该是可以的)
如下图

五.定制自己的kickstart文件
定制自己的kickstart文件而不是使用默认的,kickstart文件cobbler放在了/var/lib/cobbler/kickstarts/中,查看cobbler默认使用的哪个
  1. vi /etc/cobbler/settings 
  2. default_kickstart: /var/lib/cobbler/kickstarts/default.ks   ##看到了吧,用的是default.ks 
5.1 自定义kickstart文件。如果你对kickstart文件理解透彻,直接修改或新建即可,如果还是很精通就用gui工具吧
  1. yum -y install system-config-kickstart 
安装完毕后打开软件
  1. system-config-kickstart 
根据自己的需要修改即可,修改完毕后保存,修改settings中的设置,重启cobbler即可