免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: king_819

有奖专家座谈——自动化运维案例分享讨论之一(特邀某大型网游运维总监“king_819”) [复制链接]

论坛徽章:
0
发表于 2011-11-16 11:47 |显示全部楼层
初始优化脚本,加载到ks.cfg的post中去,通Cobbler批量安装的同时直接进行优化
  1. #!/bin/bash
  2. # BY kerryhu
  3. # MAIL:king_819@163.com
  4. # BLOG:http://kerry.blog.51cto.com

  5. #welcome
  6. cat << EOF
  7. +--------------------------------------------------------------+
  8. |         === Welcome to Centos System init ===                |
  9. +--------------------------------------------------------------+
  10. +--------------------------by kerry----------------------------+
  11. EOF
  12. #update yum
  13. cd /etc/yum.repos.d
  14. mv CentOS-Base.repo  CentOS-Base.repo.bak
  15. wget http://centos.ustc.edu.cn/CentOS-Base.repo.5
  16. mv CentOS-Base.repo.5 CentOS-Base.repo

  17. #update system
  18. yum clean all
  19. yum -y update glibc\*
  20. yum -y update yum\* rpm\* python\*
  21. yum clean all
  22. yum -y update

  23. #set ntp
  24. yum -y install ntp
  25. echo "* 3 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1" >> /etc/crontab
  26. service crond restart

  27. #set ulimit
  28. echo "ulimit -SHn 102400" >> /etc/rc.local

  29. cat >> /etc/security/limits.conf << EOF
  30. *           soft   nofile       65535
  31. *           hard   nofile       65535
  32. EOF
  33.   

  34. #set locale
  35. #true > /etc/sysconfig/i18n
  36. #cat >>/etc/sysconfig/i18n<<EOF
  37. #LANG="zh_CN.GB18030"
  38. #SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
  39. #SYSFONT="latarcyrheb-sun16"
  40. #EOF

  41. #set sysctl
  42. true > /etc/sysctl.conf
  43. cat >> /etc/sysctl.conf << EOF
  44. net.ipv4.ip_forward = 0
  45. net.ipv4.conf.default.rp_filter = 1
  46. net.ipv4.conf.default.accept_source_route = 0
  47. kernel.sysrq = 0
  48. kernel.core_uses_pid = 1
  49. net.ipv4.tcp_syncookies = 1
  50. kernel.msgmnb = 65536
  51. kernel.msgmax = 65536
  52. kernel.shmmax = 68719476736
  53. kernel.shmall = 4294967296
  54. net.ipv4.tcp_max_tw_buckets = 6000
  55. net.ipv4.tcp_sack = 1
  56. net.ipv4.tcp_window_scaling = 1
  57. net.ipv4.tcp_rmem = 4096 87380 4194304
  58. net.ipv4.tcp_wmem = 4096 16384 4194304
  59. net.core.wmem_default = 8388608
  60. net.core.rmem_default = 8388608
  61. net.core.rmem_max = 16777216
  62. net.core.wmem_max = 16777216
  63. net.core.netdev_max_backlog = 262144
  64. net.core.somaxconn = 262144
  65. net.ipv4.tcp_max_orphans = 3276800
  66. net.ipv4.tcp_max_syn_backlog = 262144
  67. net.ipv4.tcp_timestamps = 0
  68. net.ipv4.tcp_synack_retries = 1
  69. net.ipv4.tcp_syn_retries = 1
  70. net.ipv4.tcp_tw_recycle = 1
  71. net.ipv4.tcp_tw_reuse = 1
  72. net.ipv4.tcp_mem = 94500000 915000000 927000000
  73. net.ipv4.tcp_fin_timeout = 1
  74. net.ipv4.tcp_keepalive_time = 1200
  75. net.ipv4.ip_local_port_range = 1024 65535
  76. EOF

  77. /sbin/sysctl -p
  78. echo "sysctl set OK!!"

  79. #close ctrl+alt+del
  80. sed -i "s/ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/#ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/" /etc/inittab

  81. #set purview
  82. chmod 600 /etc/passwd
  83. chmod 600 /etc/shadow
  84. chmod 600 /etc/group
  85. chmod 600 /etc/gshadow

  86. #disable ipv6
  87. cat << EOF
  88. +--------------------------------------------------------------+
  89. |         === Welcome to Disable IPV6 ===                      |
  90. +--------------------------------------------------------------+
  91. EOF
  92. echo "alias net-pf-10 off" >> /etc/modprobe.conf
  93. echo "alias ipv6 off" >> /etc/modprobe.conf
  94. /sbin/chkconfig --level 35 ip6tables off
  95. echo "ipv6 is disabled!"
  96. #disable selinux
  97. sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
  98. echo "selinux is disabled,you must reboot!"
  99. #vim
  100. sed -i "8 s/^/alias vi='vim'/" /root/.bashrc
  101. echo 'syntax on' > /root/.vimrc
  102. #zh_cn
  103. sed -i -e 's/^LANG=.*/LANG="en"/'   /etc/sysconfig/i18n
  104. #init_ssh
  105. ssh_cf="/etc/ssh/sshd_config"
  106. sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf
  107. sed -i "s/#Port 22/Port 65535/" $ssh_cf
  108. sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf
  109. #client
  110. sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf
  111. service sshd restart
  112. echo "ssh is init is ok.............."
  113. #chkser
  114. #tunoff services
  115. #--------------------------------------------------------------------------------
  116. cat << EOF
  117. +--------------------------------------------------------------+
  118. |         === Welcome to Tunoff services ===                   |
  119. +--------------------------------------------------------------+
  120. EOF
  121. #---------------------------------------------------------------------------------
  122. for i in `ls /etc/rc3.d/S*`
  123. do
  124.                CURSRV=`echo $i|cut -c 15-`
  125. echo $CURSRV
  126. case $CURSRV in
  127.            crond | irqbalance | microcode_ctl | lvm2-monitor | network | random | sshd | syslog  )
  128.        echo "Base services, Skip!"
  129.        ;;
  130.        *)
  131.            echo "change $CURSRV to off"
  132.            chkconfig --level 235 $CURSRV off
  133.            service $CURSRV stop
  134.        ;;
  135. esac
  136. done

  137. echo "service is init is ok.............."
复制代码

论坛徽章:
0
发表于 2011-11-16 12:20 |显示全部楼层
回复 1# king_819


1、批量安装
这个就不用怎么多少了,如果搞linux行当的是必须会的
独辟蹊径网络安装系列后续--深入使用PXE网络环境   [第十四期]
http://bbs.chinaunix.net/viewthread.php?tid=1946041
独辟蹊径系列本地网络PXE安装Ubuntu   [第十五期]
http://bbs.chinaunix.net/viewthread.php?tid=1945989
独辟蹊径网络安装系列之Redhat衍生版重构初探[09年3月刊]
http://bbs.chinaunix.net/viewthread.php?tid=1989126
当然还有clonezilla 等工具可以选择
批量应用的 ghost母盘方式也是一个技术

2、批量优化
这个是相对某个业务流程中的架构组建,如mysql的my.cnf 以及nginx apahce 等配置文件 php.ini等参数。这些可以建立一个版本库通过获取版本方式来更新配置。或者通过附加条件判断,负载不同配置文件加载不同的配置,实时性的优化。


3、批量布署
linux的特性跨平台,傻瓜方式 ,在优化主机上将应用编译到一个目录下,然后在全部的linux主机使用批量安装相同配置参数的os的前提下,可以tar好编译的目录直接到每个主机上,通过分布式的shell定时器可以批量 下载。
或者在批量安装的%post的脚本执行部署操作。

批量安装 要包含批量部署,批量优化是根据业务动态调整的。

论坛徽章:
0
发表于 2011-11-16 12:24 |显示全部楼层
回复 1# king_819


    准备一台安装服务器,开启pxe 配置好自动安装,在每一个安装后的主机上部署好 分布式shell 或者全部建立ssh密钥通道,可以在安装服务器上具体 push任何脚本



   定制到光盘中,在系统安装后 应用也就有了
  
  viop的很多os都是基于centos的定制的


http://bbs.chinaunix.net/forum-237-1.html
定制版

论坛徽章:
0
发表于 2011-11-16 13:02 |显示全部楼层
目前就我工作的环境,我们是这样做的。
批量安装
1.vsphere克隆(系统虚拟化)
2.ks
3.存储lun拷贝

批量优化
shell,perl脚本
第三方工具

论坛徽章:
32
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:2620周年集字徽章-周	
日期:2020-10-28 14:13:30
发表于 2011-11-16 13:41 |显示全部楼层
expect + ssh 登录远程主机并修改login profile
  1. #!/usr/local/bin/expect -f
  2. set ip 192.168.175.5
  3. set user root
  4. set pass ChinaUnix
  5. set rps rhel6

  6. spawn ssh $user@$ip
  7. expect "password:"
  8. send "$pass\n"
  9. expect "$rps"
  10. send "echo 'PATH=\$PATH:\$HOME/bin' >> .bash_profile\n"
  11. expect "$rps"
  12. send "echo 'export PATH' >> .bash_profile\n"
  13. expect "$rps"
  14. send "exit\n"
  15. expect eof
复制代码

论坛徽章:
32
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:2620周年集字徽章-周	
日期:2020-10-28 14:13:30
发表于 2011-11-16 13:57 |显示全部楼层
回复 30# king_819


改造成不依赖于mkpasswd的:
  1. #!/bin/bash
  2. function pwdgen {
  3.     strUp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  4.     strLow="abcdefghijklmnopqrstuvwxyz"
  5.     strNum="0123456789"
  6.     passLen="8"
  7.     while [ "${#pass}" -le "$passLen" ]
  8.     do
  9.         passUp="${strUp:$(($RANDOM%${#strUp})):1}"
  10.         passLow="${strLow:$(($RANDOM%${#strLow})):1}"
  11.         passNum="${strNum:$(($RANDOM%${#strNum})):1}"
  12.         pass="$pass$passUp$passLow$passNum"
  13.     done
  14.     echo ${pass:0:$passLen}
  15. }

  16. #============== Though ssh remote server ,auto modify ROOT passwd =============#
  17. for IP in `cat /root/ip_list.txt`; do #导入远程要修改主机的IP
  18.     #========================= 创建远程主机密码 ==========================#
  19.     TMP_PWD=`pwdgen`
  20.     R_PWD=`echo ${IP}_${TMP_PWD}`
  21.     echo "${IP}_${TMP_PWD}" > R_PWD.txt
  22.     #=========================== 修改远程主机密码 ========================#
  23.     if [ $? = 0 ] ; then
  24.         ssh $IP passwd root --stdin < R_PWD.txt
  25.         echo -e "$(date "+%Y-%m-%d %H:%M:%S")\t${IP}\t${R_PWD}\t" >> R_Server.log
  26.     else
  27.         echo -e "$(date "+%Y-%m-%d %H:%M:%S")\t${IP} R_PWD.txt is create fail\tplease check!\t" >> M_pass.log
  28.     fi
  29.     if [ $? = 0 ] ; then
  30.         echo -e "$(date "+%Y-%m-%d %H:%M:%S")\tThe ${IP} passwd is modify OK\t" >> M_pass.log
  31.     else
  32.         echo -e "$(date "+%Y-%m-%d %H:%M:%S")\tThe ${IP} passwd is modify fail\tplease check!\t" >> M_pass.log
  33.     fi
  34. done
复制代码

论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
发表于 2011-11-16 14:10 |显示全部楼层
1、批量安装
答:我们公司使用的都是虚拟机,专门有一套系统通过web操作,生成虚拟机,基本上个5分钟就能够生成一个linux系统的服务器非常方便,不用到现场安装。
2、批量优化
答:目前我们公司在开发一套配置管理系统,专门管理所有服务器上配置文件,可以同时操作上千个配置文件,并执行命令。
3、批量布署
答:对于批量安装apache或者执行一些系统命令的话
若是只有3-10台,可以直接使用xmanage的批量执行命令工具,
若是超过10台的话,我们这边主要使用expect来进行自动化批量执行。
1)首先从一台控制机器上把要更新或者安装的文件批量上传到服务器上
见我的博客<scp批量上传文件到多台机器上(升级版)>
2)然后在一台控制机器上执行安装命令,见<批量在远程执行命令>

论坛徽章:
0
发表于 2011-11-16 14:10 |显示全部楼层
回复  king_819


1、批量安装

2、批量优化


3、批量布署
kns1024wh 发表于 2011-11-16 12:20



  ghost母盘这种方式在网吧、企业内部开发应用环境才会用到吧,真正的外网生产环境还是不建议这种方式的!

论坛徽章:
0
发表于 2011-11-16 14:12 |显示全部楼层
回复  king_819


改造成不依赖于mkpasswd的:
Shell_HAT 发表于 2011-11-16 13:57



    不错的方法!

论坛徽章:
0
发表于 2011-11-16 14:13 |显示全部楼层
回复  king_819


    准备一台安装服务器,开启pxe 配置好自动安装,在每一个安装后的主机上部署好 分 ...
kns1024wh 发表于 2011-11-16 12:24


centos可以很方便的自己定制、裁剪、添加应用,然后再批量安装
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2021中国系统架构师大会

【数字转型 架构重塑】2021年5月20日-22日第十三届中国系统架构师大会将在云端进行网络直播。

大会为期3天的议程,涉及20+专场,近120个主题,完整迁移到线上进行网络直播对会议组织来说绝非易事;但考虑到云端会议的直播形式可以实现全国各地技术爱好者的参与,也使ITPUB作为技术共享交流平台得到更好的普及,我们决定迎难而上。
http://sacc.it168.com/


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP