2022年银行数据中心自动化运维平台设计和Ansible应用 .pdf
-
资源ID:33681682
资源大小:1.13MB
全文页数:18页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年银行数据中心自动化运维平台设计和Ansible应用 .pdf
银行数据中心自动化运维平台设计和Ansible应用1.自动化运维建设背景随着 IT 技术的快速发展,IT 系统的运维复杂度不断增加,IT 部门的体量不断扩大,传统的人工操作和借助管理流程的方式已不能满足日益增长的运维工作量。而智能时代的到来,无论是DevOps的思想还是AIOps 思想,自动化就像人的“手”一样,决定着最终这些技术思想的是否能够落地,决定着未来一个IT 运维的生产力。而从银行IT 架构、运维的特殊性考虑,也需要结合银行自身的特点,对于双模的架构、双模的运维方式也要兼备在稳态和敏态下的自动化运维方案。自动化运维可以带来的益处:1.降低成本- 没有一家公司是不想降低成本的,而自动化运维可以通过提高效率、减少人为错误和人力需求,降低企业IT 成本。2.提高生产力- 自动化运维几乎不需要手动工作,这也就意味着它不仅可以提高产出,还可以将运维人员从复杂的传统运维工作中释放出来,将其知识和技能应用于更有价值的工作和任务上。此外,通过减少周转时间,每天可处理工作量也提高了。3.高可用- 系统宕机可能会使企业损失惨重,无论是金钱上, 还是声誉上。 运维优先要保障的便是高可用,这也是自动化运维的一大目标。例如名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 通过自动化保存和恢复机制,全天候系统监控和远程通信,以大幅降低网络停机时间;或是快速恢复,减少故障带来的损失。4.更可靠- 运维常常包括一些重复的但完全必要的工作,这也就是为什么它容易出错。当人为因素从这个过程中消除时,那些昂贵的人为错误也自然消失了, 这对于具有多个操作系统的大型网络尤其有用。自动化运维可以明显提高可靠性,减轻运维人员繁琐的手动任务。5.性能优化- 运维专家面临的另一个问题是,让执行任务和工作流程变得更快、 更高效、 具备更高工作负载。传统运维方式想要满足这些需求是很困难的, 而自动化运维工具则可以填补此类需求,在无需雇佣更多员工的情况下,最大限度的提高性能。基于以上业务发展的需要以及自动化运维的收益,结合自身IT 发展的形势,某银行在自动化运维方面进行了探索和实践。2.自动化运维平台设计2.1 需求分析1.建立自动化运维管理作业平台,集成自动化部署、批量变更、资源管理、资产信息自动发现等功能。2.实现物理机一站式批量部署,包括服务器部署以及操作系统UX、Linux 以及 Windows操作系统的部署。3.实现基于虚拟化平台OpenStack和 VMWare的基础环境的自动化部署。4.实现 Windows安全补丁的批量安装和管理。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 5.实现基于操作系统的批量变更的功能,包括Windows安全补丁安装、批量推送配置、批量安装软件等。6.实现基于操作系统层面资产信息的自动发现。7.实现基于操作系统的自动化巡检功能。8.与流程平台、配置平台的对接,实现流程数据和资源数据的整合实现资源管理功能。9.与流程平台对接,实现工单驱动自动化部署和变更的半自助服务。2.2 系统架构1.总体设计思路系统运维自动化的应用架构及关键业务流程的总体规划及设计如下:建设自动化作业管理平台是本项目的主要工作目标,底层对接资源层,使用各类技术工具以实现自动化操作,横向对接配置管理平台、流程平台、监控平台和数据管理平台,贯穿整体统一运维管理框架,以实现自动化部署、批量变更、配置发现、自动巡检、资源管理的功能。2.总体应用逻辑架构设计下图是系统运维自动化的总体逻辑架构图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 解释说明:整体架构分为资源层、工具层、 平台层和应用层。底层根据企业特点,目前主要是基于私有云环境以及物理裸机,私有云主要使用VmWare和OpenStack等虚拟化平台,而容器平台也逐渐将作为一种资源类型纳入到资源层的管控中。而基于金融行业的特殊性,物理裸机的部署依旧占用比重很大。在设计上依旧需要考虑物理裸机的自动化部署。在工具层根据底层资源的类型以及特性选择相应的技术工具,如X86服务器的部署选择Cobbler ,虚拟化平台选择Ansible 、虚拟化平台API 或是命令对接的方式实现资源的自动化部署和资源管控。对接流程管理平台主要实现环境交付和变更的半自助服务,以及实现资源管控的流程信息的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 分类和管理。 对接监控信息实现故障自愈以及资源回收。对接配置平台, 是通过信息的自动发现保证配置信息的准确性。在平台层建立自动化作业管理平台,也是本期实施的主要部分。在金融企业内部基本已建立了流程平台、配置平台、监控平台。作业管理平台,主要面向运维人员,可提供自动化操作和配置界面。而在应用场景方面,主要需要解决的问题,一是环境的自动化部署交付、二是批量变更、 三是主机信息的自动化发现、四是自动化巡检、五是资源管控。3.关键应用实施方案物理服务器部署根据实际需求情况,由于物理服务器的操作系统版本没有高度统一,如RedHat 、CentOS 、Exsi 等各类版本, 故物理服务器一站式部署的实质是要形成 X86 物理资源池,再按需下发部署操作系统。要实现Cobbler的自动化下推操作系统,必须提供DHCP 网络环境,根据现有的网络环境,按如下方案实施:1.Cobbler服务器根据其业务功能将其部署在数据中心的业务管理区(或某一个业务区中),Cobbler提供 X86 服务器基于PXE 的自动引导安装功能,同时提供DHCP 服务,并定义跨区域的多网段IP 地址段。2.由于 Cobbler的网络引导需要在DHCP 网络内进行, 而在目前业务网中采用的是固定IP 分配方式,故采取在每个业务区建立一个Vlan作为物理服务器的预安装区,在这些区域内单独开启DHCP 服务。 Cobbler服名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 务器本身作为DHCP 服务器,每个区域预安装区Vlan 的服务器通过本区域的接入交换机的中继服务向DHCP 服务器申请IP 地址。3.裸机上电上架时业务口先接入预安装区Vlan ,该 Vlan网络与同区业务网络通过接入交换机隔离。已接入各业务区Vlan 的待安装裸机,在启动时会广播请求DHCP 服务以获取IP 地址,通过每个区汇聚层的DHCP 中继服务,将其指向业务管理区(Cobbler服务器所在业务区)的DHCP 服务器(部署在Cobbler服务器上)以获取IP 地址,获取IP 地址后会继续请求引导文件, 获取镜像文件等后续操作系统部署动作。在完成操作系统的自动安装后,将该裸机服务器的业务IP 由预安装Vlan 切换至正式业务环境。4.Cobbler在 kickstart的基础上集成了电源管理功能,故每台X86服务器在批量上电上架后配置带外口配置,可以实现批量部署物理服务器形成物理资源池,再按需实现操作系统部署。无需在上电上架时人为开机进行引导操作系统,将批量部署和按需下发的动作分离,形成物理资源池。具体网络结构如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 4.主要工具简介CobblerCobbler 是一个系统启动服务(boot server ),可以通过网络启动(PXE)的方式用来快速安装、重装物理服务器和虚拟机,支持安装不同的Linux 发行版和Windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE 网络安装环境的配置,同时还可以管理 DHCP ,DNS ,以及 yum 包镜像。Cobbler 使用命令行方式管理,也提供了基于Web 的界面管理工具(cobbler-web),还提供了API 接口,可以方便二次开发使用。Ignite-UXIgnite-UX是 HP-UX 的系统管理工具,可以利用该工具通过镜像备份恢复的方式从网络引导并安装HP-UX 操作系统。WSUS名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - WSUS是个微软推出的网络化的补丁分发方案,是个免费的工具。WSUS支持微软公司全部产品的更新。通过WSUS这个内部网络中的Windows升级服务, 所有 Windows更新都集中下载到内部网的WSUS 服务器中,而网络中的客户机通过WSUS 服务器来得到更新。这在很大程度上节省了网络资源,避免了外部网络流量的浪费并且提高了内部网络中计算机更新的效率。 WSUS 采用 C/S 模式,客户端已被包含在各个WINDOWS操作系统上。从微软网站上下载的是WSUS 服务器端。通过配置,将客户端和服务器端关联起来,就可以自动下载补丁了。这个配置几乎就是使用WSUS 的全部工作了。Ansibleansible是自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef 、func 、fabric )的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。3.Ansible的应用在整个自动化运维管理平台中,除了集成部分由专业开发团队外包集成外, Ansible是由我们目前研究的方向和目标。而基于Ansible基本实现了自动化运维平台的后端核心部分,下面的章节主要就Ansible研究和探索的内容进行分享和探讨。3.1Ansible的特点Ansible在 官 网 中 被 定 义 为Ansible is a radically simple IT automation engine。说明 Ansible是一款极其简单的IT 自动化工具,在名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 0.X 的版本中甚至使用Stupid Simple来形容 Ansible是令人发指的简单。可见 Ansible这块自动化工具非常注重Simple的理念。虽然 Ansible注重使用的简单,但它自身并不简单,它拥有丰富稳定的内置模块和开放的API 接口。目前在 Ansible2.3的版本中已经拥有了1014个内置模块(数据更新至2017 年 9 月 6 日)。而由于其开源生态非常好使得其内置模块支持的覆盖面非常广:系统层: Linux 、Windows、AIX 等,对应的模块有acl 、cron 、pip 、yum 、shell 、command、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的对比目前主流的自动化配置管理工具主要有Ansible 、 Puppet和 SaltStack ,这三款自动化开源工具的主要优劣势如表一所示,而近年来Ansible也成名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 为了自动化配置管理工具的“网红”,其在GitHub中的社区关注度见表二。GitHub社区活跃度:3.2Ansible的技术能力Ansible在 Linux下的技术能力作为开源系统和软件,Linux 系统是 Ansible支持最佳的操作系统。我们使用Ansible在 Linux下对部分模块进行了测试和实际的运用。结果表明,模块的丰富程度很高可以覆盖绝大多数自动化运维场景。无代理的特性Ansible的管控覆盖快速、轻便。稳定性和容错能力不错。在大量覆盖千量名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 级服务器发现了几个不足是需要寻求一些更好的解决方案的,一是 Ansible会对中文字符集的操作系统支持上存在一些小问题,比如service模块;二是 Ansible执行命令时会在某些被控节点特定异常时挂住,无法继续, 即使采用异步模式; 三是性能并不是特别好,需要调优或寻求其他解决方案。未调优情况下, 管控千量级服务器可以,万量级服务器难以胜任。在 8C8G 的服务器上对2000 台服务器执行20 并发的 ping模块(即单作业执行)消耗 时 间 大约 3 分 钟 。 实际 在 进 行ZabbixAgent批 量 安 装 时 , 我 们 的Playbook有 20 多个作业,在安装500 台服务器时使用的时间大约是20-30 分钟。常用 Linux模块(基本覆盖90% 的自动化场景):user: 用户管理group :用户组管理shell :调用 shellfile :文件、目录管理(包括权限、属主)copy :文件复制(包括权限、属主)service :Linux 服务管理lineinfile:对于文本文件的处理,可通过正则表达式进行替换、新增、删除等,是配置文件调整的利器template:下发模版文件,可以随变量变化在下发后自动生成适用于受控主机的配置文件,是配置文件管理的利器,特别适用于系统应用软件,比如 mysql 、jboss 、 apache等authorized_key:密钥管理,可以批量下发或管理ssh 密钥名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - unarchive:对 zip 、tar 、gzip等格式的包可以解压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 、mount 、lvg 、lvol 等等。所以不推荐Ansible在 HPUX 下直接使用。如果需要Ansible统一管控,可以通过Ansible连接后调用脚本实现管控。Ansible在 Windows下的技术能力Ansible连接Windows主机从技术实现上是利用了Windows的Powershell及.net 库,通过 Python的 pywinrm库实现基于Windows的winrm协议远程控制Windows主机,而调用的Ansible的内置模块实质均为 Powershell脚本,仅由python程序调用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - - - - - - 故 Ansible连接 Windows主机需要Powershell3.0及.net3.5 ,所以WindowsServer2008需要进行升级,而Windows2012及以上版本可以直接使用。通 过测 试及 实际 运 用 发现 ,常规 运 维操 作 覆盖 能力不错。甚至 使用Ansible进行 WindowsHotFix补丁的安装均可以实现。当然我们在选择补丁安装时最终还是选择了微软原生的WSUS 进行集成。根据实际情况, 目前依旧有不少应用运行在WindowsServer2008上,升 级 .net需 要 应 用 的 测 试 , 工 作 量 较 大 需 要 逐 步 推 进 。 而 在WindowsServer2012及以上版本上,使用Ansible是没有什么问题的。常用 Windows模块(基本覆盖90% 的自动化场景):win_user: windows用户管理win_group: windows用户组管理win_shell:调用 windows内部命令或脚本win_file :管理windows文件,包括复制、删除、创建等,包括管理文件属主、权限等win_copy:复制 windows文件,包括复制、删除、创建等,包括管理文件属主、权限等win_service:管理 windows的服务,可以启动、停止、设置自启、禁止自启win_lineinfile:对文本文件通过正则表达式进行调整,包括插入、替换、删除win_unzip:可对 zip 压缩包进行解压,win_zip可以进行打包名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - - - - - - win_msi :对 windows的 msi 包进行管理Ansible在 OpenStack下的技术能力Ansible可以作为OpenStack的自动化编排工具,通过Ansible控制OpenStack的 Controller节点,通过Ansible的内置模块os_server 、os_volume等模块实现在OpenStack平台上管理instance和存储。从需求出发公司目前的需求仅为环境交付。所以在实际使用中,我们根据用户对环境的需求,使用已经编制好的AnsiblePlaybook调用不同的参数在 OpenStack上创建实例、挂载磁盘、进行安全加固、安装基础软件最终交付至用户,与流程对接后可以实现半自助服务。而在社区中也可以看到大量关于Ansible安装 OpenStack以及扩展的资料和实际使用情况。本文在这里不做深入介绍。另外,Git上也有不少Ansible在 OpenStack上的实际案例,比如使用Ansible的 Playbook来实现整个OpenStack环境的自动化应急演练,检测网络、实例、存储、以及实例上的资源异常时的系统健壮程度。所以,我们认为Ansible可以作为OpenStack的编排工具在公司进行推广使用。Ansible技术能力总结Ansible的优点主要是:一、学习曲线平滑, 使用简易。 具备一定脚本使用基础的运维人员两个月可以较为熟练的使用。二、无代理,部署简单。三、模块丰富,覆盖面较广,使用场景较多。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - 四、社区热度高,资料丰富。Ansible的缺点是:一、性能相对较弱,需要优化或更改连接模式提升性能。二、 HPUX 、WindowsServer08支持较弱。三、对于中文环境依旧存在一些弊端。四、日志记录功能不够强大。五、基于幂等设计,回退机制弱。3.3Ansible的应用场景目前公司Ansible已经广泛开始使用,目前应用的场景主要是批量变更、软件安装、环境交付以及主机信息的自动发现。批量变更主要应用在Linux操作系统上,根据实际运维需要我们应用在Agent批量安装、用户批量开设、配置批量更新等方面。使用最多的是Zabbix和 Flume的 Agent批量安装,特别是Zabbix使用 Ansible工具特别方便,除了安装Agent之外,批量更改配置非常方便,如使用 Zabbix服务器或代理服务器地址更换、自定义 Key 的新增调整等等。在用户开立方面也使用Ansible进行批量推送。同时,在配置方便除了Zabbix配置之外,还在ELK 的 Syslog的配置上也已经进行了应用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - 在使用 Ansible进行批量变更的时候,需要保证代码进行充分测试,虽然 Ansible在使用上非常简单,但回退机制较弱。比如文件的批量更新,虽然可以进行备份,但无法将备份批量进行回退。基础设施即代码的概念中最困难的一点是碎片服务器,由于存在大量的存量服务器, 所以这个问题无法避免。这就需要企业内部使用Ansible的时候一定要将Ansible作为一种软件代码进行管理,建立开发测试发布机制,保证代码充分测试。在批量变更的时候寻找不同类型的设备进行试点后再逐步推送。 如果使用Ansible进行过一次推送后,碎片的问题基本就不是问题了,今后可以较为放心的反复更新。关于开发测试发布机制,我们目前以GitLab为工具建立了版本控制系统,并定义了代码迁入迁出规则,严格根据流程开发、测试最后才能最终发布。软件安装除了批量变更之外, Ansible主要是实现基础软件的安装,比如 mysql 、oracle 、jboss等等。在使用Ansible安装此类软件时将配置独立出来,这样可以根据用户需求获取不同参数,以实现不同配置的软件。环境交付除了批量变更之外, Ansible主要是实现基础软件的安装,比如 mysql 、oracle 、jboss等等。在环境交付层面, 由于 Ansible是基于操作系统或是虚拟化云平台的,所 以 在 裸 机 部署 上 并 不 适 用 。 在虚 拟 化 云 平 台上 ,通 过Ansible基 于OpenStack和 VMWare的模块开设实例和虚机以及挂盘,完成虚机的下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - 放后,再进行软件的安装。从 Ansible的 Playbook的设计上只需要将下放虚机挂盘操作作为一部分再集成前述的软件安装部分即可。下放虚机挂盘的操作也可以由自动化运维平台中集成各个虚拟化平台的命令完成。最后呈现的形式由用户递交环境申请信息,标注需要什么配置的服务器、几台、需要安装什么样的软件。递交申请审批通过,由自动化平台自动运行部署后交付至用户。主机信息自动发现利用 Ansible的现成连接通道以及自带的facts 模块,实现主机信息的自动发现和更新功能,并将这些信息定期更新至配置平台中,以辅助配置平台的数据准确性。 由于 Ansible的 facts 模块采集的信息有限,且基于 Linux 、HPUX 以及 Windows采集的内容也稍有不同,所以还是需要一些本地化的程序辅助。Facts中可以采集的信息主要包含了主机的一些基础信息,如主机名、IP 地址、网卡信息、 CPU、 MEM 以及操作系统版本等信息。而从需求出发,我们可能还关注基础软件的版本信息、文件系统以及用户的信息等等。所以需要根据需求定义一些程序以获取这些信息。我们目前采用如下图,设计方法获取主机信息,根据需求编制Ansible的模块,比如获取用户的信息,定义新的模块,定义完成后即形成新的AnsibleAD-HOC命令,通过一段程序获取所有受控的主机的facts 以及自定义的信息之后将其入库,并同步更新至CMDB 库。运维人员自己就可以根据自身的需求去定义需要的信息,并且将其入库, 无需专业的开发人员实施。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 其他场景Ansible的其他使用场景,主要是应用的发布和变更,利用Ansible本身与 Git 结合的能力, 考虑应用的发布,社区中也有不少这样的案例可以参考。同时公司目前也在研究以Jenkins为主要工具的持续集成、持续测试,Jenkins环境部署和应用发布的部分考虑与Ansible对接实现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -