利用Cobbler批量布署CentOS 【伪原创】


1、安装rpmforce源
CentOS 5.5默认的Repository里找不到Cobbler,先安装rpmforce这个Repository

cd /opt
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

2、安装相关软件
yum -y install cobbler dhcp httpd xinetd tftp-server

3、检查cobbler配置
cobbler check

094927276.jpg

根椐提示修改配置文件
/var/lib/cobbler/settings 中的 server 和 next_server 对应的127.0.0.1修改为本服务器的 IP 地址,
manage_dhcp 设为 1,以便管理 DHCP

095001466.jpg


将 /etc/xinetd.d/tftp 中 disable = no

095029643.jpg

4、导入精简后的ISO
mkdir -p /mnt/iso
mount -o loop /data/KerryOS-1.0-i386.iso /mnt/iso
cobbler import --mirror=/mnt/iso --name=kerryOS-1.0-i386

查看导入结果
cobbler distro list

095052631.jpg


5、修改 DHCP 和 Kickstart 配置模板
#修改DHCP配置模板
vi /etc/dhcpd.conf
vi /etc/cobbler/dhcp.template

 
 
ddns-update-style interim;
    
allow booting;
allow bootp;
    
ignore client-updates;
set vendorclass = option vendor-class-identifier;
    
subnet 192.168.9.0 netmask 255.255.255.0 {
     option routers          192.168.9.1;   #路由器地址
     option subnet-mask      255.255.255.0;  #子网掩码选项
     option domain-name-servers  192.168.9.1;  #DNS地址
     range dynamic-bootp     192.168.9.200 192.168.9.254;  #动态IP范围
     filename                "/pxelinux.0";
     default-lease-time      21600;     #缺省租约时间
     max-lease-time          43200; #最大租约时间
     next-server             192.168.9.230;  #指定引导服务器
}


#修改 Kickstart 配置模板
mv /var/www/cobbler/kickstarts/kerryOS-1.0-i386/ks.cfg /var/www/cobbler/kickstarts/kerryOS-1.0-i386/ks.cfg.bak
mv /var/www/cobbler/kickstarts/kerryOS-1.0-xen-i386/ks.cfg /var/www/cobbler/kickstarts/kerryOS-1.0-xen-i386/ks.cfg.bak
vi /etc/cobbler/default.ks
vi /var/www/cobbler/kickstarts/kerryOS-1.0-i386/ks.cfg
vi /var/www/cobbler/kickstarts/kerryOS-1.0-xen-i386/ks.cfg

 
 
  1. # Kickstart file automatically generated by anaconda.  

  2. #Install OS instead of upgrade  

  3. install  

  4. #Use text mode install  

  5. text  

  6. #Use CDROM installation media  

  7. cdrom  

  8. lang en_US.UTF-8  

  9. keyboard us  

  10. #Skip the X Configuration  

  11. skipx  

  12. #Use network installation  

  13. url --url=http://192.168.9.230/cobbler/ks_mirror/kerryOS-1.0-i386  

  14. #Network information  

  15. #network --device eth0 --bootproto static --ip 192.168.9.226 --netmask 255.255.255.0 --gateway 192.168.9.1 --nameserver 192.168.9.1 --noipv6 --onboot=yes --hostname kerry-web-001  

  16. network --device eth0 --bootproto dhcp --noipv6 --hostname kerry-web-001  

  17. #root -- 1q2w3e  

  18. rootpw --iscrypted $1$n07CbCot$GP.VBeICPHj.QkJb5Y2C2.  

  19. firewall --disabled  

  20. #System authorization information  

  21. authconfig --enableshadow --enablemd5  

  22. selinux --disabled  

  23. timezone --utc Asia/Shanghai  

  24. #System bootloader configuration  

  25. bootloader --location=mbr

  26. #Clear the Master Boot Record  

  27. zerombr yes  

  28. # Set the Mouse  

  29. mouse generic3ps/2  

  30. # The following is the partition information you requested  

  31. # Note that any partitions you deleted are not expressed  

  32. # here so unless you clear all partitions first, this is  

  33. # not guaranteed to work  

  34. #Partition clearing information  

  35. clearpart --all --initlabel  

  36. part /boot --fstype ext3 --size=200 --asprimary  

  37. part / --fstype ext3 --size=10000

  38. part swap --size=2048

  39. part /data --fstype ext3 --size=1 --grow  

  40. #--- Reboot the host after installation is done  

  41. reboot  

  42. %packages  

  43. %packages  

  44. @base  

  45. @core  

  46. @development-libs  

  47. @development-tools  

  48. @editors  

  49. @text-internet  

  50. keyutils  

  51. trousers  

  52. fipscheck  

  53. device-mapper-multipath  

  54. imake  

  55. %post --nochroot  

  56. # Mount CDROM  

  57. mkdir -p /mnt/cdrom  

  58. mount -r -t iso9660 /tmp/cdrom /mnt/cdrom  

  59. cp /mnt/cdrom/ipmod /mnt/sysimage/root/ipmod > /dev/null  

  60. umount /mnt/cdrom  

  61. %post  

  62. #vim syntax on  

  63. sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 2>/dev/null  

  64. echo 'syntax on' > /root/.vimrc 2>/dev/null  

  65. #init_ssh  

  66. ssh_cf="/etc/ssh/sshd_config"

  67. sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf  

  68. sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf  

  69. #client  

  70. sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf  

  71. # Remove the ISO File translation files  

  72. find / -name TRANS.TBL -exec rm {} \; /dev/null 2>/dev/null  

  73. # Remove some unneeded services  

  74. #--------------------------------------------------------------------------------  

  75. cat <<EOF

  76. +--------------------------------------------------------------+  

  77. | === Welcome to Tunoff services === |  

  78. +--------------------------------------------------------------+  

  79. EOF  

  80. #---------------------------------------------------------------------------------  

  81. for i in `ls /etc/rc3.d/S*`  

  82. do  

  83. CURSRV=`echo $i|cut -c 15-`  

  84. echo $CURSRV  

  85. case $CURSRV in  

  86.        crond | irqbalance | microcode_ctl | network | random | sshd | syslog | local )  

  87.    echo "Base services, Skip!"  

  88.    ;;  

  89.    *)  

  90.        echo "change $CURSRV to off"  

  91.        chkconfig --level 235 $CURSRV off  

  92.        service $CURSRV stop  

  93.    ;;  

  94. esac  

  95. done  

  96. # file descriptors  

  97. ulimit -HSn 65535  

  98. echo -ne "  

  99. * soft nofile 65536  

  100. * hard nofile 65536  

  101. " >>/etc/security/limits.conf  

  102. #set sysctl  

  103. true > /etc/sysctl.conf  

  104. cat >> /etc/sysctl.conf <<EOF

  105. net.ipv4.ip_forward = 0

  106. net.ipv4.conf.default.rp_filter = 1

  107. net.ipv4.conf.default.accept_source_route = 0

  108. kernel.sysrq = 0

  109. kernel.core_uses_pid = 1

  110. net.ipv4.tcp_syncookies = 1

  111. kernel.msgmnb = 65536

  112. kernel.msgmax = 65536

  113. kernel.shmmax = 68719476736

  114. kernel.shmall = 4294967296

  115. net.ipv4.tcp_max_tw_buckets = 6000

  116. net.ipv4.tcp_sack = 1

  117. net.ipv4.tcp_window_scaling = 1

  118. net.ipv4.tcp_rmem = 4096 87380 4194304  

  119. net.ipv4.tcp_wmem = 4096 16384 4194304  

  120. net.core.wmem_default = 8388608

  121. net.core.rmem_default = 8388608

  122. net.core.rmem_max = 16777216

  123. net.core.wmem_max = 16777216

  124. net.core.netdev_max_backlog = 262144

  125. net.core.somaxconn = 262144

  126. net.ipv4.tcp_max_orphans = 3276800

  127. net.ipv4.tcp_max_syn_backlog = 262144

  128. net.ipv4.tcp_timestamps = 0

  129. net.ipv4.tcp_synack_retries = 1

  130. net.ipv4.tcp_syn_retries = 1

  131. net.ipv4.tcp_tw_recycle = 1

  132. net.ipv4.tcp_tw_reuse = 1

  133. net.ipv4.tcp_mem = 94500000 915000000 927000000  

  134. net.ipv4.tcp_fin_timeout = 1

  135. net.ipv4.tcp_keepalive_time = 1200

  136. net.ipv4.ip_local_port_range = 1024 65535  

  137. EOF  

  138. /sbin/sysctl -p  

  139. #close ctrl+alt+del  

  140. sed -i "s/ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/#ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/" /etc/inittab  

  141. #set purview  

  142. chmod 600 /etc/passwd  

  143. chmod 600 /etc/shadow  

  144. chmod 600 /etc/group  

  145. chmod 600 /etc/gshadow

6、生成并同步所有配置
cobbler sync

7、启动相关的服务
/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

#记得关闭防火墙
/etc/init.d/iptables stop
chkconfig --level 35 iptables off

8、相关配置文件及目录
cobbler相关配置文件: /etc/cobbler
cobbler数据存储目录: /var/www/cobbler
dhcp配置文件: /etc/dhcpd.conf
dhcp租期缓存文件: /var/lib/dhcpd/dhcpd.leases
pxe配置文件: /tftpboot/pxelinux.cfg/default
ks模板文件: /var/lib/cobbler/kickstarts_*.ks

9、客户端通过PXE安装系统
启动另一台新服务器,通过 PXE 启动进入,提示"boot:"时输入"menu"即可进入蓝色的 Cobbler 安装界面,选择安装项,自动完成系统安装。

095516889.jpg

095530386.jpg

10、重装系统
CentOS 5.5默认的Repository里找不到koan,先安装rpmforce这个Repository
cd /opt
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

#在要重装的机器安装koan  
yum -y install koan

#查看cobbler服务器有哪些安装盘  
koan --list-profiles --server=192.168.9.230

095724600.jpg

#选择要重装的系统并重启  
koan --replace-self --server=192.168.9.230 --profile=kerryOS-1.0-i386
reboot

11、服务控制脚本
vi /etc/init.d/cobbler_all

 
 
  1. #!/bin/sh  

  2. case $1 in  

  3.        start)  

  4.               /etc/init.d/httpd start  

  5.               /etc/init.d/xinetd start  

  6.               /etc/init.d/dhcpd start  

  7.               /etc/init.d/cobblerd start  

  8.                ;;  

  9.        stop)  

  10.               /etc/init.d/httpd stop  

  11.               /etc/init.d/xinetd stop  

  12.               /etc/init.d/dhcpd stop  

  13.               /etc/init.d/cobblerd stop  

  14.                ;;  

  15.        status)  

  16.                /etc/init.d/httpd status  

  17.                /etc/init.d/xinetd status  

  18.                /etc/init.d/dhcpd status  

  19.                /etc/init.d/cobblerd status  

  20.                ;;      

  21.         sync)  

  22.                cobbler sync  

  23.                ;;                            

  24.        *)  

  25.                echo "Input error,please in put 'start|stop|status|sync'!";  

  26.                exit 2>&1 >/dev/null &  

  27.                ;;  

  28.        esac

chmod +x /etc/init.d/cobbler_all

/etc/init.d/cobbler_all  start|stop|startus|sync

本文出自 “峰云,就她了。” 博客,请务必保留此出处http://rfyiamcool.blog.51cto.com/1030776/737211

你可能感兴趣的:(Web,开发,python,api,cobbler,cobbler,cobbler,cobbler)