1、系统环境
centos-6.4
ipaddr: 10.240.240.114 gateway:10.240.240.1
2、关闭selinux (关闭完之后最好进行一次重启)
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
关闭防火墙
chkconfig iptables off
service iptables stop
3、 配置obbler yum源
rpm -Uvh 'http://mirrors.ustc.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm'
4、安装Cobbler基础包
yum install -y cobbler tftp dhcp httpd cman pykickstart debmirror
5、安装Cobbler依赖包
yum install -y ed patch perl perl-Compress-Zlib perl-Digest-SHA1 perl-LockFile-Simple perl-libwww-perl
6、将基础的服务配置成开机自启动
chkconfig httpd on
chkconfig dhcpd on
chkconfig xinetd on
chkconfig cobblerd on
7、修改httpd配置文件并启动httpd
vim /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1:80
启动httpd进程
service httpd start
查看http进程启动情况
netstat -ntulp | grep :80
8、启动Cobbler服务并执行检查命令
[root@localhost ~]# service cobblerd start
Starting cobbler daemon: [ OK ]
[root@localhost ~]# 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 : comment out 'dists' on /etc/debmirror.conf for proper debian support
6 : comment out 'arches' on /etc/debmirror.conf for proper debian support
7 : 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
Restart cobblerd and then run 'cobbler sync' to apply changes.
修改上面错误的方法如下:
(1).错误1,修改/etc/cobbler/settings 里面的 server 为Cobbler Server的IP地址 ;
[root@localhost ~] vim /etc/cobbler/settings
server: 10.240.240.114
(2).错误2,修改/etc/cobbler/settings 里面的 next_serverw 为本机的 ip;
[root@localhost ~] vim /etc/cobbler/settings
next_server: 10.240.240.114
(3).错误3,据说这个错误可以忽略,有强迫完美运行症的人士可以运行以下命令来解决;
[root@localhost ~]cobbler get-loaders
(4).错误4,修改/etc/xinetd.d/tftp 把'disable' 修改为'no';修改/etc/xinetd.d/rsync 把'disable' 修改为'no';
[root@localhost ~]# vim /etc/xinetd.d/tftp
disable = no
[root@localhost ~]# vim /etc/xinetd.d/rsync
disable = no
再次启动xinetd服务。
[root@localhost ~]# service xinetd start
正在启动 xinetd: [确定]
(5).错误5与错误6,debmmirror有错误;
[root@localhost ~]# vim /etc/debmirror.conf
#注释掉@dists="sid"与@arches="i386即可
#@dists="sid";
#@arches="i386";
(6).错误7,设置默认root密码;
注,刚接触Cobbler的博友会问,这个密码是什么密码。有的博友系统安装好了会问,root密码是什么。这里设置的就是客户端安装好系统的root密码。
注,生成你想要的密码的加密字符串,然后复制运行命令之后的加密代码;
[root@localhost ~]# openssl passwd -1 -salt 'hahaha' 'jiayuan.com'
$1$hahaha$hSxFjZSHRoiEn4DYrrGUI.
注,然后替换/etc/cobbler/settings 中选项双引号中的加密代码;
[root@localhost ~]# vim /etc/cobbler/settings
default_password_crypted: "$1$hahaha$hSxFjZSHRoiEn4DYrrGUI."
9.重新启动Cobbler并运行检查命令
[root@localhost ~]# service cobblerd restart
Stopping cobbler daemon: [ OK ]
Starting cobbler daemon: [ OK ]
检查cobbler
[root@localhost ~]# cobbler check
The following are potential configuration items that you may want to fix:
1 : service dhcpd is not running #dhcp服务没有启动,通过步骤10解决这个问题。
Restart cobblerd and then run 'cobbler sync' to apply changes.
10、修改DHCP模板
首先修改cobbler配置,让cobbler来管理dhcp服务,编辑文件/etc/cobbler/settings
manage_dhcp: 1
接下来修改/etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板
[root@localhost ~]# vim /etc/cobbler/dhcp.template (只修改如下内容,此文件中的其他内容不用管)
subnet 10.240.240.0 netmask 255.255.255.0 {
option routers 10.240.240.1;
option subnet-mask 255.255.255.0;
filename "/pxelinux.0";
range dynamic-bootp 10.240.240.220 10.240.240.240;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
再在vi /etc/dhcp/dhcpd.conf 文件中添加如下内容
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
subnet 10.240.216.0 netmask 255.255.255.0 {
option routers 10.240.216.254;
option subnet-mask 255.255.255.0;
filename "/pxelinux.0";
range dynamic-bootp 10.240.216.1 10.240.216.7;
default-lease-time 21600;
max-lease-time 43200;
next-server 10.240.216.250;
}
11、执行一下同步操作并检查配置文件
[root@localhost ~]# cobbler sync
task started: 2014-05-14_205901_sync
task started (id=Sync, time=Wed May 14 20:59:01 2014)
running pre-sync triggers
cleaning trees
mkdir: /var/lib/tftpboot/pxelinux.cfg
mkdir: /var/lib/tftpboot/grub
mkdir: /var/lib/tftpboot/s390x
mkdir: /var/lib/tftpboot/ppc
mkdir: /var/lib/tftpboot/etc
removing: /var/lib/tftpboot/grub/p_w_picpaths
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
copying distros to tftpboot
copying p_w_picpaths
generating PXE configuration files
generating PXE menu structure
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
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: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: Starting dhcpd: [ OK ] #dhcpd服务已经启动
received on stderr:
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@localhost ~]#
再次检查cobbler没问题发现
[root@localhost ~]# cobbler check
No configuration problems found. All systems go.
12、把镜像挂载的目录
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount -o loop /dev/sr0 /mnt/cdrom/
[root@localhost ~]# cd /mnt/cdrom/
[root@localhost cdrom]# ls
EFI RELEASE-NOTES-as-IN.html RELEASE-NOTES-kn-IN.html RELEASE-NOTES-te-IN.html
EULA RELEASE-NOTES-bn-IN.html RELEASE-NOTES-ko-KR.html RELEASE-NOTES-zh-CN.html
GPL RELEASE-NOTES-de-DE.html RELEASE-NOTES-ml-IN.html RELEASE-NOTES-zh-TW.html
HighAvailability RELEASE-NOTES-en-US.html RELEASE-NOTES-mr-IN.html repodata
p_w_picpaths RELEASE-NOTES-es-ES.html RELEASE-NOTES-or-IN.html ResilientStorage
isolinux RELEASE-NOTES-fr-FR.html RELEASE-NOTES-pa-IN.html RPM-GPG-KEY-redhat-beta
LoadBalancer RELEASE-NOTES-gu-IN.html RELEASE-NOTES-pt-BR.html RPM-GPG-KEY-redhat-release
media.repo RELEASE-NOTES-hi-IN.html RELEASE-NOTES-ru-RU.html ScalableFileSystem
Packages RELEASE-NOTES-it-IT.html RELEASE-NOTES-si-LK.html Server
README RELEASE-NOTES-ja-JP.html RELEASE-NOTES-ta-IN.html TRANS.TBL
13、cobbler导入镜像
[root@localhost ~]# cobbler import --path=/mnt/cdrom --name=Redhat-6.3 --arch=x86_64
task started: 2014-05-13_054601_import
task started (id=Media import, time=Tue May 13 05:46:01 2014)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64:
creating new distro: Redhat-6.3-x86_64
trying symlink: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64 -> /var/www/cobbler/links/Redhat-6.3-x86_64
creating new profile: Redhat-6.3-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64 for Redhat-6.3-x86_64
processing repo at : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64
looking for /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/repodata
processing repo at : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/Server
need to process repo/comps: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/Server
looking for /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/Server/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/Server/repodata
processing repo at : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/HighAvailability
need to process repo/comps: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/HighAvailability
looking for /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/HighAvailability/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/HighAvailability/repodata
processing repo at : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/LoadBalancer
need to process repo/comps: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/LoadBalancer
looking for /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/LoadBalancer/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/LoadBalancer/repodata
processing repo at : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ResilientStorage
need to process repo/comps: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ResilientStorage
looking for /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ResilientStorage/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ResilientStorage/repodata
processing repo at : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ScalableFileSystem
need to process repo/comps: /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ScalableFileSystem
looking for /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ScalableFileSystem/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/ScalableFileSystem/repodata
*** TASK COMPLETE ***
查看cobbler列表
[root@localhost ~]# cobbler list
distros:
Redhat-6.3-x86_64
profiles:
Redhat-6.3-x86_64
systems:
repos:
p_w_picpaths:
mgmtclasses:
packages:
files:
14、查看一下导入镜像的详细信息
[root@localhost ~]# cobbler report
distros:
==========
Name : Redhat-6.3-x86_64
Architecture : x86_64
TFTP Boot Files : {}
Breed : redhat
Comment :
Fetchable Files : {}
Initrd : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/p_w_picpaths/pxeboot/initrd.img
Kernel : /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/p_w_picpaths/pxeboot/vmlinuz
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart Metadata : {'tree': 'http://@@http_server@@/cblr/links/Redhat-6.3-x86_64'}
Management Classes : []
OS Version : rhel6
Owners : ['admin']
Red Hat Management Key : <
Red Hat Management Server : <
Template Files : {}
profiles:
==========
Name : Redhat-6.3-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : Redhat-6.3-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/sample_end.ks
Kickstart Metadata : {}
Management Classes : []
Management Parameters : <
Name Servers : []
Name Servers Search Path : []
Owners : ['admin']
Parent Profile :
Proxy :
Red Hat Management Key : <
Red Hat Management Server : <
Repos : []
Server Override : <
Template Files : {}
Virt Auto Boot : 1
Virt Bridge : xenbr0
Virt CPUs : 1
Virt Disk Driver Type : raw
Virt File Size(GB) : 5
Virt Path :
Virt RAM (MB) : 512
Virt Type : kvm
systems:
==========
repos:
==========
p_w_picpaths:
==========
mgmtclasses:
==========
packages:
==========
files:
==========
15、自定义kickstart文件
[root@localhost ~]# cd /var/lib/cobbler/kickstarts/
[root@localhost kickstarts]# vi redhat-6.3.ks (名字可以自己定义)
install
text
key --skip
keyboard us
lang en_US.UTF-8
skipx
network --device eth0 --bootproto dhcp
rootpw root
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
url --url=$tree #
$SNIPPET('network_config') #上面这两部特别重要,网络的安装路径,用变量表示。
bootloader --location=mbr --driveorder=sda
zerombr yes
clearpart --all
part /boot --fstype ext4 --size=200
part / --fstype ext4 --size=20000
part swap --fstype swap --size=8192
part /u01 --fstype ext4 --grow --size=200
reboot
%packages
@base
@core
@server-policy
ipmitool
OpenIPMI
openssh-clients
net-snmp
%post
16、将自定义的kickstart文件与镜像相关联
[root@localhost ~]# cobbler profile edit --name=Redhat-6.3-x86_64 --distro=Redhat-6.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/redhat-6.3.ks
[root@localhost ~]# cobbler report
17、同步一下cobbler
[root@localhost ~]# cobbler sync
task started: 2014-05-13_082354_sync
task started (id=Sync, time=Tue May 13 08:23:54 2014)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/p_w_picpaths/Redhat-6.3-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/grub/grub-x86_64.efi
removing: /var/lib/tftpboot/grub/p_w_picpaths
removing: /var/lib/tftpboot/grub/grub-x86.efi
removing: /var/lib/tftpboot/p_w_picpaths/Redhat-6.3-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
copying distros to tftpboot
copying files for distro: Redhat-6.3-x86_64
trying hardlink /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/p_w_picpaths/pxeboot/vmlinuz -> /var/lib/tftpboot/p_w_picpaths/Redhat-6.3-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/p_w_picpaths/pxeboot/initrd.img -> /var/lib/tftpboot/p_w_picpaths/Redhat-6.3-x86_64/initrd.img
copying p_w_picpaths
generating PXE configuration files
generating PXE menu structure
copying files for distro: Redhat-6.3-x86_64
trying hardlink /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/p_w_picpaths/pxeboot/vmlinuz -> /var/www/cobbler/p_w_picpaths/Redhat-6.3-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/Redhat-6.3-x86_64/p_w_picpaths/pxeboot/initrd.img -> /var/www/cobbler/p_w_picpaths/Redhat-6.3-x86_64/initrd.img
Writing template files for Redhat-6.3-x86_64
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: Redhat-6.3-x86_64
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: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ] #必须看到dhcpd进行启动才可以
received on stderr:
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@localhost ~]#
到此就可以拿一台新机器从pxe启动装系统了
18、可以配置cobbler的web管理界面
(1)、安装软件包
[root@localhost ~]# yum -y install cobbler-web
(2)、设置用户名密码
为已存在的用户cobbler重置密码
[root@localhost ~]# htdigest /etc/cobbler/users.digest "Cobbler" cobbler
添加新用户
[root@localhost ~]# htdigest /etc/cobbler/users.digest "Cobbler" admin
(3)、配置cobbler web可以登录
[root@localhost ~]# sed -i 's/authn_denyall/authn_configfile/g' /etc/cobbler/modules.conf
(4)、重启Cobbler与http
[root@localhost ~]# /etc/init.d/cobblerd restart
Stopping cobbler daemon: [ OK ]
Starting cobbler daemon: [ OK ]
[root@localhost ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@localhost ~]#
(5)访问Cobbler Web页面
https://10.240.240.210/cobbler_web
利用MAC地址自动化安装服务器系统的命令
cobbler system add --name BGW-OS-node1 --hostname BGW-OS-node1 --profile Redhat-6.5-x86_64
cobbler system edit --name BGW-OS-node1 --interface em1 --mac 84:2B:2B:41:5D:7F --ip-address 10.240.216.1 --netmask 255.255.255.0 --gateway 10.240.216.254 --static 1