数据中心自动化运维设计及Ansible应用探索_第1页
数据中心自动化运维设计及Ansible应用探索_第2页
数据中心自动化运维设计及Ansible应用探索_第3页
数据中心自动化运维设计及Ansible应用探索_第4页
数据中心自动化运维设计及Ansible应用探索_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数据中心自动化运维设计及Ansible应用探索 目 录 TOC o 1-3 h z u HYPERLINK l _Toc66559480 数据中心自动化运维设计及Ansible应用探索 PAGEREF _Toc66559480 h 1 HYPERLINK l _Toc66559481 1.自动化运维建设背景 PAGEREF _Toc66559481 h 3 HYPERLINK l _Toc66559482 2.自动化运维平台设计 PAGEREF _Toc66559482 h 4 HYPERLINK l _Toc66559483 2.1需求分析 PAGEREF _Toc66559483 h 4

2、 HYPERLINK l _Toc66559484 2.2系统架构 PAGEREF _Toc66559484 h 4 HYPERLINK l _Toc66559485 3.Ansible的应用 PAGEREF _Toc66559485 h 8 HYPERLINK l _Toc66559486 3.1Ansible的特点 PAGEREF _Toc66559486 h 8 HYPERLINK l _Toc66559487 3.2Ansible的技术能力 PAGEREF _Toc66559487 h 9 HYPERLINK l _Toc66559488 3.3Ansible的应用场景 PAGEREF

3、 _Toc66559488 h 131.自动化运维建设背景随着IT技术的快速发展,IT系统的运维复杂度不断增加,IT部门的体量不断扩大,传统的人工操作和借助管理流程的方式已不能满足日益增长的运维工作量。而智能时代的到来,无论是DevOps的思想还是AIOps思想,自动化就像人的“手”一样,决定着最终这些技术思想的是否能够落地,决定着未来一个IT运维的生产力。而从银行IT架构、运维的特殊性考虑,也需要结合银行自身的特点,对于双模的架构、双模的运维方式也要兼备在稳态和敏态下的自动化运维方案。自动化运维可以带来的益处:降低成本 - 没有一家公司是不想降低成本的,而自动化运维可以通过提高效率、减少人为

4、错误和人力需求,降低企业IT成本。提高生产力 - 自动化运维几乎不需要手动工作,这也就意味着它不仅可以提高产出,还可以将运维人员从复杂的传统运维工作中释放出来,将其知识和技能应用于更有价值的工作和任务上。此外,通过减少周转时间,每天可处理工作量也提高了。高可用 - 系统宕机可能会使企业损失惨重,无论是金钱上,还是声誉上。运维优先要保障的便是高可用,这也是自动化运维的一大目标。例如通过自动化保存和恢复机制,全天候系统监控和远程通信,以大幅降低网络停机时间;或是快速恢复,减少故障带来的损失。更可靠 - 运维常常包括一些重复的但完全必要的工作,这也就是为什么它容易出错。当人为因素从这个过程中消除时,

5、那些昂贵的人为错误也自然消失了,这对于具有多个操作系统的大型网络尤其有用。自动化运维可以明显提高可靠性,减轻运维人员繁琐的手动任务。性能优化 - 运维专家面临的另一个问题是,让执行任务和工作流程变得更快、更高效、具备更高工作负载。传统运维方式想要满足这些需求是很困难的,而自动化运维工具则可以填补此类需求,在务虚雇佣更多员工的情况下,最大限度的提高性能。基于以上业务发展的需要以及自动化运维的收益,结合自身IT发展的形势,某银行在自动化运维方面进行了探索和实践。2.自动化运维平台设计2.1需求分析建立自动化运维管理作业平台,集成自动化部署、批量变更、资源管理、资产信息自动发现等功能。实现物理机一站

6、式批量部署,包括服务器部署以及操作系统HPUX、Linux以及Windows操作系统的部署。实现基于虚拟化平台OpenStack和VMWare的基础环境的自动化部署。实现Windows安全补丁的批量安装和管理。实现基于操作系统的批量变更的功能,包括Windows安全补丁安装、批量推送配置、批量安装软件等。实现基于操作系统层面资产信息的自动发现。实现基于操作系统的自动化巡检功能。与流程平台、配置平台的对接,实现流程数据和资源数据的整合实现资源管理功能。与流程平台对接,实现工单驱动自动化部署和变更的半自助服务。2.2系统架构1.总体设计思路系统运维自动化的应用架构及关键业务流程的总体规划及设计如下

7、:建设自动化作业管理平台是本项目的主要工作目标,底层对接资源层,使用各类技术工具以实现自动化操作,横向对接配置管理平台、流程平台、监控平台和数据管理平台,贯穿整体统一运维管理框架,以实现自动化部署、批量变更、配置发现、自动巡检、资源管理的功能。2.总体应用逻辑架构设计下图是系统运维自动化的总体逻辑架构图解释说明:整体架构分为资源层、工具层、平台层和应用层。底层根据企业特点,目前主要是基于私有云环境以及物理裸机,私有云主要使用VmWare和OpenStack等虚拟化平台,而容器平台也逐渐将作为一种资源类型纳入到资源层的管控中。而基于金融行业的特殊性,物理裸机的部署依旧占用比重很大。在设计上依旧需

8、要考虑物理裸机的自动化部署。在工具层根据底层资源的类型以及特性选择相应的技术工具,如X86服务器的部署选择Cobbler,HPUnix服务器选择Ux-ignite,而虚拟化平台选择Ansible、虚拟化平台API或是命令对接的方式实现资源的自动化部署和资源管控。对接流程管理平台主要实现环境交付和变更的半自助服务,以及实现资源管控的流程信息的分类和管理。对接监控信息实现故障自愈以及资源回收。对接配置平台,是通过信息的自动发现保证配置信息的准确性。在平台层建立自动化作业管理平台,也是本期实施的主要部分。在金融企业内部基本已建立了流程平台、配置平台、监控平台。作业管理平台,主要面向运维人员,可提供自

9、动化操作和配置界面。而在应用场景方面,主要需要解决的问题,一是环境的自动化部署交付、二是批量变更、三是主机信息的自动化发现、四是自动化巡检、五是资源管控。3.关键应用实施方案物理服务器部署根据实际需求情况,由于物理服务器的操作系统版本没有高度统一,如RedHat、CentOS、Exsi等各类版本,故物理服务器一站式部署的实质是要形成X86物理资源池,再按需下发部署操作系统。要实现Cobbler的自动化下推操作系统,必须提供DHCP网络环境,根据公司现有的网络环境,按如下方案实施:Cobbler服务器根据其业务功能将其部署在数据中心的业务管理区(或某一个业务区中),Cobbler提供X86服务器

10、基于PXE的自动引导安装功能,同时提供DHCP服务,并定义跨区域的多网段IP地址段。由于Cobbler的网络引导需要在DHCP网络内进行,而在目前业务网中采用的是固定IP分配方式,故采取在每个业务区建立一个Vlan作为物理服务器的预安装区,在这些区域内单独开启DHCP服务。Cobbler服务器本身作为DHCP服务器,每个区域预安装区Vlan的服务器通过本区域的接入交换机的中继服务向DHCP服务器申请IP地址。裸机上电上架时业务口先接入预安装区Vlan,该Vlan网络与同区业务网络通过接入交换机隔离。已接入各业务区Vlan的待安装裸机,在启动时会广播请求DHCP服务以获取IP地址,通过每个区汇聚

11、层的DHCP中继服务,将其指向业务管理区(Cobbler服务器所在业务区)的DHCP服务器(部署在Cobbler服务器上)以获取IP地址,获取IP地址后会继续请求引导文件,获取镜像文件等后续操作系统部署动作。在完成操作系统的自动安装后,将该裸机服务器的业务IP由预安装Vlan切换至正式业务环境。Cobbler在kickstart的基础上集成了电源管理功能,故每台X86服务器在批量上电上架后配置带外口配置,可以实现批量部署物理服务器形成物理资源池,再按需实现操作系统部署。无需在上电上架时人为开机进行引导操作系统,将批量部署和按需下发的动作分离,形成物理资源池。具体网络结构如下图:4.主要工具简介

12、CobblerCobbler 是一个系统启动服务(boot server),可以通过网络启动(PXE)的方式用来快速安装、重装物理服务器和虚拟机,支持安装不同的 Linux 发行版和 Windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP,DNS,以及yum包镜像。Cobbler 使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。Ignite-UXIgnite-UX是HP-UX的系统管理工具,可以利用该工具通过镜像备份恢复的方式从网

13、络引导并安装HP-UX操作系统。WSUSWSUS是个微软推出的网络化的补丁分发方案,是个免费的工具。WSUS支持微软公司全部产品的更新。通过WSUS这个内部网络中的Windows升级服务,所有Windows更新都集中下载到内部网的WSUS服务器中,而网络中的客户机通过WSUS服务器来得到更新。这在很大程度上节省了网络资源,避免了外部网络流量的浪费并且提高了内部网络中计算机更新的效率。WSUS采用C/S模式,客户端已被包含在各个WINDOWS操作系统上。从微软网站上下载的是WSUS服务器端。通过配置,将客户端和服务器端关联起来,就可以自动下载补丁了。这个配置几乎就是使用WSUS的全部工作了。An

14、sibleansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。3.Ansible的应用在整个自动化运维管理平台中,除了集成部分由专业开发团队外包集成外,Ansible是由我们自己目前研究的方向和目标。而基于Ansible基本实现了自动化运维平台的后端核心部分,下面的章节主要就Ansible研究和探索的内容进行分享和探讨。3.1Ansible的特点Ansible在官网中被定义为Ansible is a radically simple IT

15、 automation engine。说明Ansible是一款极其简单的IT自动化工具,在0.X的版本中甚至使用Stupid Simple来形容Ansible是令人发指的简单。可见Ansible这块自动化工具非常注重Simple的理念。虽然Ansible注重使用的简单,但它自身并不简单,它拥有丰富稳定的内置模块和开放的API接口。目前在Ansible2.3的版本中已经拥有了1014个内置模块(数据更新至2017年9月6日)。而由于其开源生态非常好使得其内置模块支持的覆盖面非常广:系统层:Linux、Windows、AIX等,对应的模块有acl、cron、pip、yum、shell、comman

16、d、file、copy、user、lvol等等。虚拟化:OpenStack、VMware、Docker、CloudStack、LXC等,对应的模块glance_image、os_server、vmware_vmkernel、docker等等。商业化软件:F5、ASA、Citrix、Eos等系统应用层:Apache、Jboss、Zabbix、Rabbitmq、SVN、GIT、Mysql、Mariadb等,对应的模块apache2_module、jboss、zabbix_group、rabbitmq_binding、subversion、git等Ansible与Puppet和Saltstack的对

17、比目前主流的自动化配置管理工具主要有Ansible、Puppet和SaltStack,这三款自动化开源工具的主要优劣势如表一所示,而近年来Ansible也成为了自动化配置管理工具的“网红”,其在GitHub中的社区关注度见表二。GitHub社区活跃度:3.2Ansible的技术能力Ansible在Linux下的技术能力作为开源系统和软件,Linux系统是Ansible支持最佳的操作系统。我们使用Ansible在Linux下对部分模块进行了测试和实际的运用。结果表明,模块的丰富程度很高可以覆盖绝大多数自动化运维场景。无代理的特性Ansible的管控覆盖快速、轻便。稳定性和容错能力不错。在大量覆盖

18、千量级服务器发现了几个不足是需要寻求一些更好的解决方案的,一是Ansible会对中文字符集的操作系统支持上存在一些小问题,比如service模块;二是Ansible执行命令时会在某些被控节点特定异常时挂住,无法继续,即使采用异步模式;三是性能并不是特别好,需要调优或寻求其他解决方案。未调优情况下,管控千量级服务器可以,万量级服务器难以胜任。在8C8G的服务器上对2000台服务器执行20并发的ping模块(即单作业执行)消耗时间大约3分钟。实际在进行ZabbixAgent批量安装时,我们的Playbook有20多个作业,在安装500台服务器时使用的时间大约时20-30分钟。常用Linux模块(基

19、本覆盖90%的自动化场景):user: 用户管理group:用户组管理shell:调用shellfile:文件、目录管理(包括权限、属主)copy:文件复制(包括权限、属主)service:Linux服务管理lineinfile:对于文本文件的处理,可通过正则表达式进行替换、新增、删除等,是配置文件调整的利器template:下发模版文件,可以随变量变化在下发后自动生成适用于受控主机的配置文件,是配置文件管理的利器,特别适用于系统应用软件,比如mysql、jboss、apache等authorized_key:密钥管理,可以批量下发或管理ssh密钥unarchive:对zip、tar、gzip

20、等格式的包可以解压yum:使用yum管理器对包进行管理lvg:lvm的pv和vg管理,可以创建、调整、删除vglvol:lvm的lv管理,可以创建、调整、删除lvfssystem:文件系统管理mount:文件系统挂载管理Ansible在HPUX下的技术能力根据公司的实际情况,Unix服务器主要是HPUX,AIX使用的比较少。故对Ansible在HPUX的使用进行了测试。首先HPUX11.31下并未默认安装python,故需要手动安装python后才能接管。而测试结果发现支持情况不佳,HPUX下可以使用少部分的Linux的模块,而使用到一些系统级的模块时HPUX下无法支持,比如service、m

21、ount、lvg、lvol等等。所以不推荐Ansible在HPUX下直接使用。如果需要Ansible统一管控,可以通过Ansible连接后调用脚本实现管控。Ansible在Windows下的技术能力Ansible连接Windows主机从技术实现上是利用了Windows的Powershell及.net库,通过Python的pywinrm库实现基于Windows的winrm协议远程控制Windows主机,而调用的Ansible的内置模块实质均为Powershell脚本,仅由python程序调用。故Ansible连接Windows主机需要Powershell3.0及.net3.5,所以Windows

22、Server2008需要进行升级,而Windows2012及以上版本可以直接使用。通过测试及实际运用发现,常规运维操作覆盖能力不错。甚至使用Ansible进行WindowsHotFix补丁的安装均可以实现。当然我们在选择补丁安装时最终还是选择了微软原生的WSUS进行集成。根据实际情况,目前依旧有不少应用运行在WindowsServer2008上,升级.net需要应用的测试,工作量较大需要逐步推进。而在WindowsServer2012及以上版本上,使用Ansible是没有什么问题的。常用Windows模块(基本覆盖90%的自动化场景):win_user: windows用户管理win_grou

23、p: windows用户组管理win_shell:调用windows内部命令或脚本win_file:管理windows文件,包括复制、删除、创建等,包括管理文件属主、权限等win_copy:复制windows文件,包括复制、删除、创建等,包括管理文件属主、权限等win_service:管理windows的服务,可以启动、停止、设置自启、禁止自启win_lineinfile:对文本文件通过正则表达式进行调整,包括插入、替换、删除win_unzip:可对zip压缩包进行解压,win_zip可以进行打包win_msi:对windows的msi包进行管理Ansible在OpenStack下的技术能力A

24、nsible可以作为OpenStack的自动化编排工具,通过Ansible控制OpenStack的Controller节点,通过Ansible的内置模块os_server、os_volume等模块实现在OpenStack平台上管理instance和存储。从需求出发公司目前的需求仅为环境交付。所以在实际使用中,我们根据用户对环境的需求,使用已经编制好的AnsiblePlaybook调用不同的参数在OpenStack上创建实例、挂载磁盘、进行安全加固、安装基础软件最终交付至用户,与流程对接后可以实现半自助服务。而在社区中也可以看到大量关于Ansible安装OpenStack以及扩展的资料和实际使用

25、情况。本文在这里不做深入介绍。另外,Git上也有不少Ansible在OpenStack上的实际案例,比如使用Ansible的Playbook来实现整个OpenStack环境的自动化应急演练,检测网络、实例、存储、以及实例上的资源异常时的系统健壮程度。所以,我们认为Ansible可以作为OpenStack的编排工具在公司进行推广使用。Ansible技术能力总结Ansible的优点主要是:一、学习曲线平滑,使用简易。具备一定脚本使用基础的运维人员两个月可以较为熟练的使用。二、无代理,部署简单。三、模块丰富,覆盖面较广,使用场景较多。四、社区热度高,资料丰富。Ansible的缺点是:一、性能相对较弱

26、,需要优化或更改连接模式提升性能。二、HPUX、WindowsServer08支持较弱。三、对于中文环境依旧存在一些弊端。四、日志记录功能不够强大。五、基于幂等设计,回退机制弱。3.3Ansible的应用场景目前公司Ansible已经广泛开始使用,目前应用的场景主要是批量变更、软件安装、环境交付以及主机信息的自动发现。批量变更主要应用在Linux操作系统上,根据实际运维需要我们应用在Agent批量安装、用户批量开设、配置批量更新等方面。使用最多的是Zabbix和Flume的Agent批量安装,特别是Zabbix使用Ansible工具特别方便,除了安装Agent之外,批量更改配置非常方便,如使用

27、Zabbix服务器或代理服务器地址更换、自定义Key的新增调整等等。在用户开立方面也使用Ansible进行批量推送。同时,在配置方便除了Zabbix配置之外,还在ELK的Syslog的配置上也已经进行了应用。在使用Ansible进行批量变更的时候,需要保证代码进行充分测试,虽然Ansible在使用上非常简单,但回退机制较弱。比如文件的批量更新,虽然可以进行备份,但无法将备份批量进行回退。基础设施即代码的概念中最困难的一点是碎片服务器,由于存在大量的存量服务器,所以这个问题无法避免。这就需要企业内部使用Ansible的时候一定要将Ansible作为一种软件代码进行管理,建立开发测试发布机制,保证代码充分测试。在批量变更的时候寻找不同类型的设备进行试点后再逐步推送。如果使用Ansible进行过一次推送后,碎片的问题基本就不是问题了,今后可以较为放心的反复更新。关于开发测试发布机制,我们目前以GitLab为工具建立了版本控制系统,并定义了代码迁入迁出规则,严格根据流程开发、测试最后才能最终发布。软件安装除了批量变更之外,Ansible主要是实现基础软件的安装,比如mysql、oracle、jboss等等。在使用Ansible安装此类软件时将配置独立出来,这样可以根据用户需求获取不同参数,以实现不同配置的软件。环境交付除了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论