自动化运维建设的最大难点在于异构的自动化运维,原因在于企业各类硬件、操作系统、软件、场景需求的异构,造成各类场景的设计和实现难度增加,需考虑场景下的每一种异构的解决办法。红帽的企业级服务是如何看待该难点问题的?
个人认为Ansible的一个最大的好处就是通过他完善的生态(如众多的modules,galaxy的众多roles也可以被复用)去解决系统异构的问题。用户只需要了解module的用法,编写yaml文件,就可以完成对不同硬件及软件的管理及自动化。异构的难点其实被Ansible体系所屏蔽了。
收起多种异构设备需要进行统一自动化运维的前提是需要对每种设备上的系统进行标准化要求,按照标准进行批量操作才能提高效率。
对ansible 而言,他本身无代理的模式已经决定了他能支持多种系统,同时ansible的connection plugin能支持openssh winrm等协议,对于目标设备只要支持者两种方式登录,都可以进行自动化。
虽说不同的软硬件,操作系统等都有自己的管理方式,但还是有一些相同点的,ansible这些自动化工具就是抓住了这些共性实现跨平台运维的。
首先就是ansible的工作原理,ansible实现批量操作的关键就是SSH协议和python,很多硬件设备包括网络设备上都是有一个linux内核在运行的,而linux本身就自带SSH协议以及python解释器,这也是实现跨平台运维的基础。
而整体的异构化运维就考验运维人员的任务编排能力了,如果能把复杂的运维场景高度抽象化,并对抽象出来的逻辑通过ansible的模块实现,当然也可以直接通过python实现,这样就能实现不同平台的异构化运维。