运维自动化方案

运维自动化简写

自动化运维主要包括以下几个方面:

  1. 系统安装
  2. 系统优化
  3. 系统监控
  4. 日志监控和收集
  5. 应用自动化部署
  6. 代码自动化部署
  7. 自动化测试
  8. 自动化更新
  9. 自动化扩容
  10. 配置文件管理
  11. 系统自动化安装和优化
    系统的自动化安装和优化,可以使用到自动化工具cobbler结合kickstart完成。
    优点:
  12. 可以完美支持linux和VMware的esxi系统
  13. 配置简单
  14. 可配置性强
  15. 可以基于mac地址的系统安装,全程无需人工干预
  16. 可以配置脚本,在安装系统完成之后可以同于yum源和安装上必须要的客户端软件,如salt-minion,Zabbix-agent 等,全程实现自动化
  17. 系统优化配置文件可以分类管理,基于web,基于数据库,基于代理的配置文件可以优化,都可以在配置在系统初始化的时候完成
  18. 系统监控
    系统监控工具我们采用开源的zabbix完成,现在收费产品也很多如基调,监控宝等。
    zabbix优点:
  19. 安装配置简单
  20. 可以实现自动化安装部署
  21. 可以实现自动化添加和监控客户端
  22. 形成的图标准确直观
  23. 可以定制监控项
  24. 可以基于api调用zabbix的监控项,扩展性强
  25. 日志监控和收集
    日志监控收集和监控工具使用elk(elasticsearch + logstash+ kibana)完成
    基本架构为:
    Logstash 收集,过滤和转存数据
    Elasticsearch: 存储和分析数据
    Kibana:展示数据
    由于logstash是java完成,需要依赖的java的环境,对系统的资源的消耗较大,且在大规模的日志收集的过程中logstash的读取和写入会是一个瓶颈,所以结构演化为:
    Filebeat+redis+logstash+elasticsearch+kibana
    Filebeat: 负责收集日志并存储到redis ,非常轻量,基本不消耗资源
    Redis: 消息队列
    Logstash: 负责从redis拉去日志,并过滤日志,解除客户端过大的瓶颈
    Elasticsearch: 存储数据和分析数据
    Kibana: 展示数据
  26. 应用自动化部署和代码自动化部署及更新
    应用自动化部署和代码自动化部署我们都可使用工具saltstack完成。
    Saltstack是基于python编写的一个自动化工具,配置文件基于yaml语法编写。所以代码非常清晰易读,使用saltstack可以完成应用的自动化部署,配置文件的统一管理和标准化。
    代码的自动化部署更新流程见下图(引用赵班长的图):
  27. 获取代码: 可以从代码管理仓库获取,如svn,git等
  28. 编译: 这一步是可选的,如果是java代码可以使用像jenkins之类的工具自动构建和编译,像php之类的代码不需要编译,可以跳过编译这一步
  29. 匹配配置文件环境: 不同应用的配置文件不同,拉去相应的环境的代码,需要相应环境的配置文件做支持,如user登录,需要user.conf,用户支付的pay的配置文件pay.conf,配置文件必须单独管理,尤其是在重要的配置文件,可以单独建立一个配置文件仓库,使用svn,git都可以完成
  30. 打包:拉去代码之后,为了便于分发,需要对代码进行打包处理,tar,zip工具都可以完成
  31. 将代码包分达到目标主机:分发代码工具有很多,rsync,saltstack,scp等都可以完成
  32. 部署节点剔除集群: 代码copy完成之后,需要将集群节点提出集群,以免造成数据错乱,saltstack+etcd可以完成
  33. 代码部署:解压代码和创建软连接,创建软连接的目的是秒级回滚
  34. 比对配置文件:配置文件至关重要,不要将测试的配置文件同步到生产,这一步必须要匹配配置文件的环境和版本
  35. 重启web: 代码更新部署之后,需要重启web,推荐平滑重启,如nginx: kill -HUP nginx
  36. 自动化测试: 基于业务完成,现在很多自动化工具,python脚本,selenium等都是基于业务完成
  37. 加入集群:在测试完成成功之后将节点加入集群,继续下一节点,如果失败立即回滚到上一版本
  38. 自动化扩容
    自动化扩容,在系统资源出现告警危机的时候,我们需要为应用实现自动化扩容。
    自动化扩容跟业务紧密相关,可以使用当下时代的企业私有云完成如kvm,openstack等。Saltstack的salt-cloud提供了基于openstack的api,可以全自动化完成扩容。然后你也可以基于kvm完成全自动化的扩容,基于脚本都可以完成。

原文地址:http://blog.51cto.com/mrdeng/2122643

时间: 2024-08-30 04:21:22

运维自动化方案的相关文章

18页PPT带你深度解读运维自动化【转】

来自地址:[http://www.opsers.org/tech/18-pages-ppt-show-you-depth-interpretation-operations-automation.html] 说实话,一个运维团队的运维能力如何,其实看一个自动化管理系统便知! ********文章较长,索引目录如下******* 一.概述 二.运维自动化的三重境界 三.运维自动化的多维解读 ******第一.基于应用变更场景的维度划分 ******第二.基于系统层次的维度划分 ******第三.基

舍本求末的运维自动化技术热潮

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://caoyameng.blog.51cto.com/4975863/1359732 运维自动化是2010年开始炒得很热的一个概念,也让很多工程师.用人单位瞎激动了很久,我也跟风学过puppet和python,求职双方也经常在面试时花大量时间谈运维自动化. 但冷静下来想想,所谓自动化,只是让培训机构赚钱的噱头而已. 一句话概括运维自动化 单说“运维自动化”几个字太抽象容易被主观塞进去

[转载]运维自动化201009

运维趋势 第 0 期 运维自动化 [人物]基于开源服务的运维自动化实现 [国际前沿]什么是 DevOps ? [运维漫画阁]正则表达式有什么用? [命令行 & 工具]面向 Linux 系统管理员的开源工具链 [命令行 & 工具]自动化开源工具一览 [实战] Kickstart 无人值守安装搭建 RHCE 实验室 [实战]戏说 Cobbler : Linux 网络安装的革命 1  [人物]运维专家李洋:漫谈基于开源服务的运维自动化实现 随着各种业务对 IT 的依赖性渐重以及云计算技术的普及,

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web

[运维] 第三篇:漫谈数据中心运维自动化

运维自动化是从2010年以后起来的一个运维需求,10年之前,运维项目主要集中在监控和ITIL流程上,当时也有BMC Control-M等产品在推,但是客户接受程度和影响力不如监控和流程.10年之后,运维自动化提上日程,建行开始招运维自动化的标,IBM.BMC.HP都纷纷参与,测了三轮,最后HP opsware中标,只能说一句厉害!工商银行也在自己组织服务商做自己特色的运维自动化平台,做了3.4年,基本成型,服务商也做出了自己的运维自动化产品,正式推向市场.当时运维自动化的主要功能是五项:自动化巡

运维自动化之使用Cobbler自动化部署Linux操作系统

1.Cobbler是什么? Cobbler是一个Linux安装服务器,能够快速设置好网络安装环境.它实现了许多与Linux相关的任务的自动化和组合,因此你在部署新的(操作)系统或更改已经存在的操作系统时不需要在繁多的命令和应用程序之间来回切换.Cobbler能帮助(用户.管理者)置备和管理DNS.DHCP.软件包更新.电源管理.配置管理以及更多. "Cobbler is a Linux installation server that allows for rapid setup of netw

运维自动化之puppet3分钟入门

运维自动化之puppet3分钟入门 几个月前曾因为项目需求而学了点puppet的一些知识,最近因为要给别人讲一下,也就借此博文来做一下回忆,当然了,这个puppet用起来还是很不错的,尤其对我这种懒人来说,如果你需要给多台机器安装同一款软件或是同几款软件,那么学习这个能让你事半功倍,接下来开始学习puppet.那么问题来了: 什么是puppet 本着外事问谷歌,内事问百度的原则,我在百度百科里找到了对其的定义:puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有

puppet运维自动化之用户管理

系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户?那就是我们今天的主题,puppet运维自动化之用户管理. [导读] 系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户?那就是我们今天的主题,pup

linux运维自动化之puppet简单应用(一)

一.pupper概述 puppet,这是目前运维主流的运维自动化工具,大多数运维管理人员都听说过,或者在使用以及在正在考虑使用中.puppet可以配合cobbler,puppet也可以配合func实现运维自动化,简单化,化繁杂为简单. 1.什么是puppet puppet是一种Linux.Unix平台的集中配置管理系统,使用ruby语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依