Cobbler有人称之为装系统神奇,当你用了之后你会发现确实如此哈,下记录一下使用过程:

一、安装

我系统环境是centos6.4,采用yum安装:

yum -y install cobbler  cobbler-web  httpd rsync tftp-server xinetd dhcp python-ctypes debmirror pykickstart

二、配置

1、关闭防火墙和SELinux 后重启系统: 

/etc/init.d/iptables stop         #关闭防火墙
chkconfig iptables off
sed -i '/SELINUX=/d' /etc/selinux/config &&  echo "SELINUX=disabled">> /etc/selinux/config  #关闭SELINUX

2、修改cobbler配置文件:

 

'next_server: 127.0.0.1' 替换成 'next_server:172.28.26.188'    #DHCP服务地址
'server: 127.0.0.1' 替换成 'server: 172.28.26.188'   #cobbler服务地址
'manage_dhcp: 0' 替换成 'manage_dhcp: 1'      #cobbler管理dhcp
'manage_rsync: 0' 替换成 'manage_rsync: 1'     #cobbler管理rsync功能
'http_port: 80'替换成 'http_port: 9080'     #更改端口号9080
default_password_crypted: "$1$1111$vZEjq1D9/uNasiTXwyx4o."  #修改这个默认密码,因为运行cobbler check时会提示你修改密码, 用这个命令实现"openssl passwd -1 -salt '任意字母' '你的密码' "
sed -i 's/next_server: 127.0.0.1/next_server: 172.28.26.188/g' /etc/cobbler/settings
sed -i 's/server: 127.0.0.1/server: 172.28.26.188/g' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
sed -i 's/http_port: 80/http_port: 9080/g' /etc/cobbler/settings
openssl passwd -1 -salt '1234312' 'navy123456'    #把生成的密码填到/etc/cobbler/settings配置里default_password_crypted:生成的新密码

3、修改tftp服务和rsync服务配置 :

sed -i '/disable/c disable = no' /etc/xinetd.d/tftp    #设置 'disable' 为 'no'
sed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsync        #设置 'disable' 为 'no'

4、修改dhcp模板 :

vim /etc/cobbler/dhcp.template
subnet 172.28.26.0 netmask 255.255.255.0 {     #修改为自己需求网段
option routers             172.28.26.188;                 #修改自己的路由
option domain-name-servers 172.28.26.188;    #域名服务器地址
option subnet-mask         255.255.255.0;         #子网掩码
range dynamic-bootp        172.28.26.191 172.28.26.193;    #分配IP地址段
filename                   "/pxelinux.0";
default-lease-time         21600;
max-lease-time             43200;
next-server                $next_server;
}

5、修改cobbler-web配置 :

sed -i 's/Listen 80/Listen 9080/g' /etc/httpd/conf/httpd.conf  #修改hhtp端口为9080
sed -i 's/module = authn_denyall/module = authn_configfile/g' /etc/cobbler/modules.conf   #修改认证
htdigest  /etc/cobbler/users.digest "Cobbler" cobbler  #修改cobbler WEB页面管理密码
vim  /etc/httpd/conf.d/ssl.conf     #修改ssl配置,把下面几行添加到配置后面即可
<VirtualHost *:9080>
<LocationMatch "^/cobbler_web/*">
RewriteEngine on
RewriteRule ^(.*) https://%{SERVER_NAME}/%{REQUEST_URI} [R,L]
</LocationMatch>
</VirtualHost>

6、启动相关的服务:

/etc/init.d/httpd start
/etc/init.d/xinetd start
/etc/init.d/dhcpd start
/etc/init.d/cobblerd start
chkconfig --level 35 httpd on
chkconfig --level 35 xinetd on
chkconfig --level 35 dhcpd on
chkconfig --level 35 cobblerd on

7、效验cobbler安装条件:

service cobblerd restart
cobbler get-loaders       #修复cobbler check时出现的错误信息
cobbler check

三、导入镜配置:

挂载ISO镜像到/mnt目录
mount -o loop /data/kisops_centos6.3._vm.iso /mnt/
导入ISO,并设置为“x86_64”,并将其命名为Centos6.3。(注:具体可查看/var/www/cobbler/ks_mirror/Centos6.4-x86_64/目录文件生成情况。)
cobbler import --path=/mnt/   --name=Centos6.3  --arch=x86_64
查看导入结果
cobbler distro list
完成后同步所有配置
cobbler sync

四、需要抓系统的机器从网卡启动就可以了

PS:附加一下ks.cfg

#set $swap= $getVar('$swap', '12000')
autostep --autoscreenshot
install
url --url=$tree
# If any cobbler repo definitions were referenced in the kickstart profile, include them here.
$yum_repo_stanza
text
skipx
lang en_US.UTF-8
keyboard us
network --onboot yes --bootproto dhcp --noipv6 --nodns
rootpw  --iscrypted \$6\$Qz7FvhTWfC2yTdb1\$qNF1o.fpE44l/F1ROzJ.bXRKeB4OVQ.maYCY3tMZKDS7tDLrHthIAREXZFvW1G08tOqptkLMxfvyW4wA.vPOz1
firewall --disabled
firstboot --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
#timezone --isUtc Asia/Shanghai
timezone --utc Asia/Shanghai
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
logging --level=info
#bootloader --append="nohz=off" --location=mbr
bootloader --location=mbr --driveorder=sda --append="biosdevname=0 nohz=off thash_entries=1048576 rhash_entries=1048576 selinux=0"
zerombr yes
# clearpart --all --initlabel --drives=sda
clearpart --all --initlabel
# ignoredisk --only-use=sda
part / --fstype=ext4 --asprimary --size=50000 --maxsize=50000 --label=/
part swap --asprimary --size=$swap --maxsize=$swap --label=swap
part /data --fstype=xfs --grow --asprimary --size=12000 --label=/data
%pre
$SNIPPET('pre_install_network_config')
# Add Pre-Installation Script here
date
%end
%packages --excludedocs --ignoremissing
@base
@core
@development
@server-policy
ftp
nc
telnet
cmake
compat-gcc-34
compat-gcc-34-c++
sgpio
libXtst
yum-plugin-priorities
koan
openssl
tengine
-lvm2
-acpid
-biosdevname
-hunspell-en
-abrt-cli
-man-pages-overrides
-blktrace
-words
-abrt-addon-kerneloops
-abrt-addon-ccpp
-bridge-utils
-nano
-mtr
-hunspell
-abrt-addon-python
-man-pages
-byacc
-indent
-diffstat
-doxygen
-intltool
-git
-ctags
-cscope
-iptables
-system-config-firewall-base
-iptables-ipv6
-system-config-firewall-tui
-subversion
%end
$SNIPPET('services_disable_enable')
%post
$SNIPPET('post_install_network_config')
$SNIPPET('env_init')
$SNIPPET('kis_cobbler_api')
$SNIPPET('cactirelease')
$SNIPPET('kisyum_install')
/usr/sbin/eject -rv /dev/sr* # eject P cdrom
echo 'v1.3' > ~root/VERSION
%end
# finish
reboot --eject