部署环境:
CentOS release 5.9 (Final)
“相关知识请自行百度,我这就不啰嗦了”
1.更新源
wget http://dl.fedoraproject.org/pub/epel/5Server/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm
2.相关服务支持YUM一键搞定
yum install cobbler httpd rsync tftp-server xinetd dhcp -y
3、启动httpd和cobblerd,并设置为开机自启动:
/sbin/service httpd start
/sbin/service cobblerd start
/sbin/chkconfig httpd on
/sbin/chkconfig dhcpd on
/sbin/chkconfig xinetd on
/sbin/chkconfig tftp on
/sbin/chkconfig cobblerd on
------------------------------------------------
相关报错--
[root@newgame ~]# /sbin/service cobblerd start
Starting cobbler daemon: Traceback (most recent call last):
File "/usr/bin/cobblerd", line 19, in <module>
import cobbler.cobblerd as app
ImportError: No module named cobbler.cobblerd
[FAILED]
[root@newgame ~]# vim /usr/bin/cobblerd
#!/usr/bin/python2.4
由于之前我将pyhton升级到2.5,所以将此处python 改为2.4即可以解决,类似报错执行相关修改!
如果你的测试环境也更新过python也有可能有其他文件出现类似报错。按上面的方法修改即可。
------------------------------------------------------------------
5、配置
检查cobbler相关配置:
cobbler check
6、修改相关配置文件。
1)、vi /etc/cobbler/settings
server: 192.168.0.13 #设置cobbler server的IP地址
next_server: 192.168.0.13 #设置PXE server的IP地址
manage_dhcp: 1 #开启管理DHCP服务
default_kickstart: /var/lib/cobbler/kickstarts/default.ks #设置默认的kickstart配置文件,此文件建议用system-config-kickstart(需要X环境)生成
2)、关闭防火墙和SElinux
service iptables stop
setenforce 0
3)、获取启动镜像
cobbler get-loaders
4)、启动tftp和rsync
vi /etc/xinetd.d/tftp
将disable = yes 改为:disable= no
vi /etc/xinetd.d/rsync
将disable= yes 改为:disable= no
重启xinetd服务:
/etc/init.d/xinetd restart
5)、修改DHCP模板,确保DHCP分配的地址和Cobbler在同一网段
cat /etc/cobbler/dhcp.template|grep ^# -v |grep ^$ -v |grep '#' -v
ddns-update-style interim; allow booting; allow bootp; ignore client-updates; set vendorclass = option vendor-class-identifier; subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.184; option domain-name-servers 192.168.0.184; option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.0.220 192.168.0.221; filename "pxelinux.0"; default-lease-time 21600; max-lease-time 43200; next-server 192.168.0.13; } group { host $iface.name { hardware ethernet $mac; fixed-address $iface.ip_address; option host-name "$iface.hostname"; option subnet-mask $iface.netmask; option routers $iface.gateway; if exists user-class and option user-class = "gPXE" { filename "http://$cobbler_server/cblr/svc/op/gpxe/system/$iface.owner"; } else { filename "undionly.kpxe"; } filename "$iface.filename"; next-server $next_server; } }
7、同步cobbler配置,使修改生效:
cbbler check
cobbler sync
6、挂载Linux安装盘,生成安装镜像:
注:可以导入多个。
mount -t iso9660 -o loop /data/iso/CentOS-5.9-x86_64-bin-DVD-1of2.iso /mnt/
mount /dev/cdrom /mnt/
cobbler import --path=/mnt/ --name=CentOS-5-i386
然后共享一个我用的的KS脚本,比较通用,可以按自行需要加入一些装机脚本。 root密码:redhat
# Kickstart file automatically generated by anaconda. #Install OS instead of upgrade install #Use text mode install text #Use CDROM installation media cdrom lang en_US.UTF-8 keyboard us #Skip the X Configuration skipx #Use network installation url --url=http://192.168.0.13/cobbler/ks_mirror/CentOS-5.9-X86_64 #Network information network --device eth0 --bootproto dhcp --noipv6 --hostname leo #root -- redhat rootpw --iscrypted $1$1Cthpm5k$ejyOypOnp0YYX0RQ3qMk41 firewall --disabled #System authorization information authconfig --enableshadow --enablemd5 selinux --disabled timezone --utc Asia/Shanghai #System bootloader configuration bootloader --location=mbr #Clear the Master Boot Record zerombr yes # Set the Mouse mouse generic3ps/2 # 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 #Partition clearing information clearpart --all --initlabel part /boot --fstype ext3 --size=200 --asprimary part / --fstype ext3 --size=10000 part swap --size=2048 part /data --fstype ext3 --size=1 --grow #--- Reboot the host after installation is done reboot %packages %packages @base @core @development-libs @development-tools @editors @text-internet keyutils trousers fipscheck device-mapper-multipath imake %post --nochroot # Mount CDROM mkdir -p /mnt/cdrom mount -r -t iso9660 /tmp/cdrom /mnt/cdrom cp /mnt/cdrom/ipmod /mnt/sysp_w_picpath/root/ipmod > /dev/null umount /mnt/cdrom %post #vim syntax on sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 2>/dev/null echo 'syntax on' > /root/.vimrc 2>/dev/null #init_ssh ssh_cf="/etc/ssh/sshd_config" sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf #client sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf # Remove the ISO File translation files find / -name TRANS.TBL -exec rm {} \; /dev/null 2>/dev/null # Remove some unneeded services #-------------------------------------------------------------------------------- cat << EOF +--------------------------------------------------------------+ | === Welcome to Tunoff services === | +--------------------------------------------------------------+ EOF #--------------------------------------------------------------------------------- for i in `ls /etc/rc3.d/S*` do CURSRV=`echo $i|cut -c 15-` echo $CURSRV case $CURSRV in crond | irqbalance | microcode_ctl | network | random | sshd | syslog | local ) echo "Base services, Skip!" ;; *) echo "change $CURSRV to off" chkconfig --level 235 $CURSRV off service $CURSRV stop ;; esac done # file descriptors ulimit -HSn 65535 echo -ne " * soft nofile 65536 * hard nofile 65536 " >>/etc/security/limits.conf #set sysctl true > /etc/sysctl.conf cat >> /etc/sysctl.conf << EOF net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 16384 4194304 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 net.core.somaxconn = 262144 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 1024 65535 EOF /sbin/sysctl -p #close ctrl+alt+del sed -i "s/ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/#ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/" /etc/inittab #set purview chmod 600 /etc/passwd chmod 600 /etc/shadow chmod 600 /etc/group chmod 600 /etc/gshadow