Cobbler(補鞋匠)批量裝機工具部署[cobbler+httpd+tftp+dhcp]

部署環境:

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章