服务器全局部署:

 
  1. cat init_server.sh  
  2.  
  3. #!/bin/bash  
  4.  
  5. cat << EOF 
  6. +--------------------------------------------------------------+  
  7. |           === Centos System init server configure===         |  
  8. +--------------------------------------------------------------+  
  9. +--------------------------by iceeggplant 2012.7.27-------------------+  
  10. EOF  
  11.  
  12. #---------------------------update yum------------------------------------------------  
  13. YUM_DIR=/etc/yum.repos.d/CentOS-Base.repo   
  14. wget http://10.0.0.x/xx/CentOS-Base.repo -P /tmp  
  15. /bin/cp $YUM_DIR ${YUM_DIR}.default  
  16. /bin/cp /tmp/CentOS-Base.repo $YUM_DIR  
  17.  
  18. #-----------set physical-host ntp time,vhost is not need.------------------------------  
  19. [ ! -d /root/tasks ] && mkdir /root/tasks  
  20. #echo -e "#!/bin/sh\n/usr/sbin/ntpdate 172.16.2.x\n/sbin/hwclock --systohc">>/root/tasks/nt.sh  
  21. ##add to crontab  
  22. #echo "1  1  *  *  1  /bin/sh /root/tasks/nt.sh >/dev/null 2>&1" >>/var/spool/cron/root  
  23.  
  24. #--------------------------user account manager-----------------------------------------  
  25. #add user account  
  26. groupadd -g 500 admins  
  27. useradd -u 500 -g 500 admp  
  28. useradd -u 501 -g 500 adms  
  29. #add ssh-key  authorize  
  30. wget http://10.0.0.x/xx/key-ins.sh -P /tmp  
  31. su - admp -c "/bin/sh /tmp/key-ins.sh"  
  32. su - adms -c "/bin/sh /tmp/key-ins.sh"  
  33. rm -f /tmp/key-ins.sh  
  34.  
  35. #account security,init ssh  
  36. SSH_DIR=/etc/ssh/sshd_config  
  37. /bin/cp $SSH_DIR ${SSH_DIR}.default  
  38. sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' $SSH_DIR  
  39. sed -i 's/#UseDNS yes/UseDNS no/' $SSH_DIR  
  40. sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords yes/' $SSH_DIR  
  41. /etc/init.d/sshd restart  
  42.  
  43. #---------------------------------------------------------------------------------  
  44. cat << EOF 
  45. +---------------------------------------------------------------------+  
  46. |                  system optimization part                           |  
  47. +---------------------------------------------------------------------+  
  48. EOF  
  49. #set ulimit  
  50. echo "ulimit -SHn 65536" >> /etc/rc.local  
  51.  
  52. #set sysctl  
  53. cat >> /etc/sysctl.conf << EOF 
  54. net.ipv4.tcp_fin_timeout = 2 
  55. net.ipv4.tcp_tw_reuse = 1 
  56. net.ipv4.tcp_tw_recycle = 1 
  57. net.ipv4.tcp_syncookies = 1 
  58. net.ipv4.tcp_keepalive_time = 600 
  59. net.ipv4.ip_local_port_range = 4000    65000  
  60. net.ipv4.tcp_max_syn_backlog = 16384 
  61. net.ipv4.tcp_max_tw_buckets = 36000 
  62. net.ipv4.route.gc_timeout = 100 
  63. net.ipv4.tcp_syn_retries = 1 
  64. net.ipv4.tcp_synack_retries = 1 
  65. net.ipv4.ip_conntrack_max = 25000000 
  66. net.ipv4.netfilter.ip_conntrack_max=25000000 
  67. net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 
  68. net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 
  69. net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 
  70. net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120 
  71. EOF  
  72. /sbin/sysctl -p  
  73. echo "sysctl set is OK!!"  
  74.  
  75. #disable selinux  
  76. sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config   
  77. setenforce 0  
  78.  
  79. #---------------------------------------------------------------------------------  
  80. cat << EOF 
  81. +--------------------------------------------------------------+  
  82. |         === shut down unnecessary services ===               |  
  83. +--------------------------------------------------------------+  
  84. EOF  
  85. for service in `chkconfig --list |grep 3:on |awk '{print $1}'`  
  86. do  
  87.         chkconfig --level 3 $service off  
  88.  
  89. done  
  90. for service in network syslog sshd acpid anacron atd auditd crond irqbalance cpuspeed haldaemon irqbalance lm_sensors messagebus   
  91. do  
  92.         chkconfig --level 3 $service on  
  93. done  
  94. echo "service is init is ok.............."  
  95.  
  96. #---------------------------------------------------------------------------------  
  97. cat << EOF 
  98. +--------------------------------------------------------------+  
  99. |         === add monitoring of cacti ===                      |  
  100. +--------------------------------------------------------------+  
  101. EOF  
  102. #!/bin/bash  
  103. plat=`uname -i`  
  104. eth0=/etc/sysconfig/network-scripts/ifcfg-eth0  
  105. eth1=/etc/sysconfig/network-scripts/ifcfg-eth1  
  106.  
  107. [ -d /etc/snmp  ] && echo software was installed ,exit .... && exit  
  108.  
  109. case "$plat"  
  110. in  
  111.   x86_64)  
  112. #        yum remove net-snmp-libs.i386 -y  
  113.         yum install net-snmp.x86_64 -y;;  
  114.   i386)  
  115.         yum -y install net-snmp.i386;;  
  116. esac  
  117.  
  118. snmp_file=/etc/snmp/snmpd.conf  
  119.  
  120. function fun_snmp()  
  121. {  
  122.    sed -i '62s/systemview/all/' $snmp_file   
  123.    sed -i '85s/#//' $snmp_file  
  124.    sed -i '122s/#//' $snmp_file  
  125.    chkconfig snmpd on  
  126.    chkconfig snmptrapd on  
  127.    /etc/init.d/snmpd start  
  128.    /etc/init.d/snmptrapd start  
  129.    sleep 2  
  130.    snmpnew=`netstat -anpt|grep snmpd`                             
  131.    if [ "$snmpnew" != "" ]  
  132.    then  
  133.    echo -----------------------------------------------------------  
  134.    echo ------------------cacti is runing--------------------------   
  135.    echo -----------------------------------------------------------  
  136.    fi  
  137. }  
  138.  
  139. if grep -E '(222.73|172.20)' $eth0;then   
  140. sed -i '41s/default/10.0.0.x/' $snmp_file  
  141. echo 'snmpd:10.0.0.21'>>/etc/hosts.allow  
  142. fun_snmp  
  143. exit  
  144. fi  
  145.  
  146. if grep -E '(172.20|172.16)' $eth1;then  
  147. sed -i '41s/default/10.0.0.x/' $snmp_file  
  148. fun_snmp  
  149. exit  
  150. fi  
  151.  
  152. #sudoers manager  
  153. sed -i 's/Defaults    requiretty/#Defaults    requiretty/' /etc/sudoers  
  154. echo "xxx   ALL=(ALL)       NOPASSWD: ALL" >>/etc/sudoers  
  155.  
  156. #hosts file add  
  157. cat >>/etc/hosts <<EOF 
  158. 10.0.0.x     svn1.xxx.com  
  159. 10.0.0.x     svn.xx.xxx.com  
  160. EOF  
  161.  
  162. #nameserver add  
  163. echo 'nameserver 10.0.0.1' >>/etc/resolv.conf 

 web-server类配置部署:

 
  1. cat web-init.sh
  2.  
  3. #!/bin/bash  
  4. #--------add account----------------------------  
  5. groupadd -g 501 devs  
  6. useradd -u 502 -g 501 xx_ba  
  7.  
  8. #--------project file create-------------------  
  9. mkdir -p /var/www/html/xx/ba  
  10. chown -R xx_ba.devs /var/www/html/xx/ba  
  11. mkdir /var/www/conf  
  12. touch /var/www/conf/xx_ba.conf  
  13. chown xx_ba.devs /var/www/conf/xx_ba.conf  
  14.  
  15. touch /var/www/conf/user.txt  
  16. echo "xx:   " >/var/www/conf/user.txt  
  17. echo "xx_ba:   " >>/var/www/conf/user.txt  
  18.  
  19. #---------install package----------------------  
  20. yum remove mysql mysql-server php php-common  
  21. yum install -y subversion.x86_64 subversion-perl.x86_64 perl-libwww-perl  
  22. yum install -y php53-pdo.x86_64 php53-mysql.x86_64 php53-pgsql.x86_64 php53-process.x86_64 php53-xmlrpc.x86_64 php53-soap.x86_64 php53-ldap.x86_64 php53-dba.x86_64 php53-xml.x86_64 php53-odbc.x86_64 php53-pspell.x86_64 php53-intl.x86_64 php53-snmp.x86_64 php53-gd.x86_64 php53-mbstring.x86_64 php53-bcmath.x86_64 php53-imap.x86_64 php53.x86_64 php53-pecl-memcache  
  23.  
  24. #--------open log permission------------------  
  25. chmod o+rx /var/log/httpd  
  26.  
  27. #-------configure file backup-----------------  
  28. htpath=/etc/httpd/conf  
  29. /bin/cp $htpath/httpd.conf $htpath/httpd.conf.default  
  30. /bin/cp /etc/php.ini /etc/php.ini.default  
  31.  
  32. #------install svn update program--------------  
  33. wget http://10.0.0.x/xx/SyncServers.gz -P /var/www  
  34. tar zxpf /var/www/SyncServers.gz -C /var/www  
  35. rm -f /var/www/SyncServers.gz
  36.  #------sudo permission manager----------------
    echo 'Cmnd_Alias SERCMD = /sbin/service, /etc/init.d/httpd' >>/etc/sudoers
    echo '%devs ALL=(root)      NOPASSWD: SERCMD' >>/etc/sudoer