免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Gray1982
打印 上一主题 下一主题

【案例讨论】企业运维自动化分享(获奖名单已公布-2012-6-12) [复制链接]

论坛徽章:
4
白银圣斗士
日期:2015-11-24 10:40:40技术图书徽章
日期:2015-11-26 13:47:47平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2016-07-19 13:54:03
11 [报告]
发表于 2012-05-22 09:54 |只看该作者
1.脚本安装这个根据自己的业务写写就好,最好也能和批量管理程序结合起来,否则大量部署的时候一样很累。
2.目前我想到的是通过cobbler安装系统并做好必要的初始化配置,并安装好cfengine或者puppet的客户端,后续的配置管理通过这类工具来做。
3.能实现自动安装系统、重装系统、部署应用、添加监控以及报警功能,如果还能提供报表就更完美了。
4.对于中小公司来说,比较难抽出技术力量专门进行自动化运维的开发,一般只能靠运维工程师自己来做, 但一般来说运维工程师开发能力也比较
有限,很难开发出平台化的管理工具,希望未来能有人开发出一套适合常用环境的运维管理平台并开源出来...

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
12 [报告]
发表于 2012-05-22 11:09 |只看该作者
我还缺个包包,在此坐等包包

论坛徽章:
0
13 [报告]
发表于 2012-05-22 11:12 |只看该作者
回复 12# 方兆国


    多多分享嘛。有干货,有包包。。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
14 [报告]
发表于 2012-05-22 11:42 |只看该作者
多谢分享,好东西

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
15 [报告]
发表于 2012-05-22 11:58 |只看该作者
回复 13# 无风之谷


    好的

论坛徽章:
0
16 [报告]
发表于 2012-05-22 12:09 |只看该作者
回复 10# Gray1982


    运维的一天 ,应该早上打开公司电脑,运维平台一片绿色,偶有的橙色点击下鼠标不到10s就成为绿色;

    中午听着high 看着MM  

   下午一杯清茶   添加几个预期的job,下吧了去happy

论坛徽章:
0
17 [报告]
发表于 2012-05-22 13:23 |只看该作者
虫虫猫 发表于 2012-05-22 09:54
1.脚本安装这个根据自己的业务写写就好,最好也能和批量管理程序结合起来,否则大量部署的时候一样很累。
...


我自己写过一个多线程的批量部署,方便
至于你说的那些自动添加这种平台,还需要慢慢搞啊·········

论坛徽章:
0
18 [报告]
发表于 2012-05-22 13:24 |只看该作者
回复 16# kns1024wh


    如果你不是所谓的领导,那一定会开了你,因为不需要

论坛徽章:
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
19 [报告]
发表于 2012-05-22 13:49 |只看该作者
本帖最后由 yifangyou 于 2012-05-22 13:52 编辑

话题一:生产环境中各种脚本(备份,部署等)应用
答:
远程执行命令脚本
scp_shell.sh的源代码
  1. #!/usr/bin/expect
  2. #author: yifangyou
  3. #create time:2011-05-17
  4. set scphost "[lindex $argv 0]"
  5. set port "[lindex $argv 1]"
  6. set scpuser "[lindex $argv 2]"
  7. set scppw "[lindex $argv 3]"
  8. #要执行的shell命令
  9. set cmd "[lindex $argv 4]"
  10. spawn ssh -p $port $scpuser@$scphost "$cmd"
  11. set timeout 30
  12. expect {
  13. #respose: "root@1.2.3.4's password:"
  14. "*password*" {
  15. set timeout 30
  16. send "$scppw\r"
  17. }
  18. #the first connect will respose "Are you sure you want to continue connecting (yes/no)? yes"
  19. "*yes*" {
  20. set timeout 30
  21. send "yes\r"
  22. set timeout 30
  23. expect "*password*"
  24. set timeout 30
  25. send "$scppw\r"
  26. }
  27. busy {send_user "\n<error:busy>";exit 1;}
  28. failed {send_user "\n<error:failed>";exit 2;}
  29. timeout {send_user "\n<error:timeout>";exit 3;}
  30. }
  31. #Permission denied not try again
  32. expect {
  33. "*denied*" {
  34. send_user "\n<error:Permission denied>"
  35. exit 4
  36. }
  37. busy {send_user "\n<error:busy>";exit 5;}
  38. failed {send_user "\n<error:failed>";exit 6;}
  39. timeout {send_user "\n<error:timeout>";exit 7;}
  40. }
  41. exit 0
复制代码
批量远程执行命令脚本
multi_scp_shell.sh的源代码
  1. #!/bin/bash
  2. #author: yifangyou
  3. #create time:2011-05-17
  4. #用来通过scp在目标机器批量执行命令
  5. #配置文件格式:
  6. #ssh_hosts=("1.1.1.1" "2.2.2.2")
  7. #ssh_ports=("22" "22") 这个可以缺省,缺省值为22,或者个数比ssh_hosts少时,使用缺省值
  8. #ssh_users=("root" "root") 这个可以缺省,缺省值为root,,或者个数比ssh_hosts少时,使用缺省值
  9. #ssh_passwords=("323" "222") 这个可以缺省,缺省的话需要从命令行输入,或者个数比ssh_hosts少时,使用命令行输入
  10. #执行:sh multi_scp_shell.sh conf_file_path 'cmd'
  11. if [ -z "$2" ]
  12. then
  13. echo "sh multi_scp_shell.sh conf_file_path 'cmd'";
  14. exit;
  15. fi
  16. default_ssh_user="root"
  17. default_ssh_port="22";
  18. #upload shell script file path
  19. scp_upload=scp_upload.sh
  20. #configure file path
  21. conf_file=$1
  22. #shell command
  23. scp_cmd=$2
  24. #判断conf_file配置文件是存在
  25. if [ ! -e "$conf_file" ]
  26. then
  27. echo "$conf_file is not exists";
  28. exit;
  29. fi
  30. #read configure file
  31. source $conf_file
  32. #若是没有在配置文件里提供密码,则在命令行输入
  33. if [ "${#ssh_passwords[@]}" = "0" ] || [ "${#ssh_passwords[@]}" -lt "${#ssh_hosts[@]}" ]
  34. then
  35. read -p "please input password:" -s default_ssh_password
  36. fi
  37. success_hosts="";
  38. fail_hosts="";
  39. for((i=0;i<${#ssh_hosts[@]};i++))
  40. do
  41. #remote ssh host
  42. ssh_host=${ssh_hosts[$i]};
  43. if [ "$ssh_host" != "" ]
  44. then
  45. #remote ssh port
  46. ssh_port=${ssh_ports[$i]};
  47. if [ "$ssh_port" = "" ]
  48. then
  49. ssh_port=$default_ssh_port; #use default value
  50. fi
  51. #remote ssh user
  52. ssh_user=${ssh_users[$i]};
  53. if [ "$ssh_user" = "" ]
  54. then
  55. ssh_user=$default_ssh_user; #use default value
  56. fi
  57. #remote ssh password
  58. ssh_password=${ssh_passwords[$i]};
  59. if [ "$ssh_password" = "" ]
  60. then
  61. ssh_password=$default_ssh_password; #use default value
  62. fi
  63. echo "["`date +"%F %T"`"] (scp -r $ssh_user@$ssh_host:$ssh_port exe '$scp_cmd') start"
  64. #scp file or dir
  65. echo "######################################$ssh_host output start############################################################"
  66. /usr/bin/expect scp_shell.sh "$ssh_host" "$ssh_port" "$ssh_user" "$ssh_password" "$scp_cmd"
  67. if [ "$?" -eq "0" ]
  68. then
  69. success_hosts="$success_hosts,$ssh_host"
  70. else
  71. fail_hosts="$fail_hosts,$ssh_host"
  72. fi
  73. echo "######################################$ssh_host output end############################################################"
  74. echo "["`date +"%F %T"`"] (scp -r $ssh_user@$ssh_host:$ssh_port exe '$scp_cmd') end"
  75. echo ""
  76. else
  77. echo "ssh_host[$i]=null"
  78. fi
  79. done
  80. echo "success_hosts=[$success_hosts]"
  81. echo "fail_hosts=[$fail_hosts]"
复制代码
配置文件格式
  1. #ssh_hosts=("1.1.1.1" "2.2.2.2")
  2. #ssh_ports=("22" "22") #wheen port_num < host_num use default=22,or ssh_ports is undefined use 22 as default value
  3. #ssh_users=("root" "root") #wheen user_num < host_num use default=root,or ssh_users is undefined use root as default value
  4. #ssh_passwords=("323" "222") #wheen password_num < host_num use default=input password,or ssh_users is undefined use input password
复制代码
话题二:各种开源软件在自动化运维中的管理应用
答:
1.expect:能够自动默认人机交互,自动输入yes,或者密码等操作,可以让所有的人机交互变为自动输入,但是这方面的资料太少
2.xmanager,Cluster SSH,SecureCRT这些可以同时打开多个ssh客户端,运维人员可以输入一条命令在多个服务器上执行。
3.sshpass:类似于expect,但是比较弱只支持ssh或者scp可以用参数方式输入密码,没有返回值


话题三:公司需要运维平台的功能
答:1.能够同时控制多台机器执行shell命令
2.能够获取各台机器执行shell脚本后的返回结果,最好能够图形话表现出那些机器执行成功和执行进度
3.最好能够同时修改2000个机器的配置文件


话题四:实施自动化运维的难处
答:1.首先要统一各个服务器的环境,若是有某一台机器环境不一致(少装了一些软件),会导致同样的命令在这台上执行不成功
2.超过20台机器的部署比较困难,需要使用批量自动化工具
3.执行的命令最好不要或者尽量减少人机交换,最好所有命令都写到一个shell脚本上,只要执行一条命令执行即可
4.非常难写出一个能够在各个服务器上都能够成功运行起来的shell

论坛徽章:
4
白银圣斗士
日期:2015-11-24 10:40:40技术图书徽章
日期:2015-11-26 13:47:47平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2016-07-19 13:54:03
20 [报告]
发表于 2012-05-22 13:49 |只看该作者
Gray1982 发表于 2012-05-22 13:23
我自己写过一个多线程的批量部署,方便
至于你说的那些自动添加这种平台,还需要慢慢搞啊······ ...


嘿嘿,你是俺的qq好友,你那个工具还没测试呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP