Ansible自动化框架的第2个版本添加了Microsoft Azure和Docker容器管理功能,从此不再只是一个Red Hat支持工具。
当年Red Hat收购Ansible这个最流行的IT自动化框架时,大家的疑问是:接下来会发生什么变化?Ansible是否会进行调整以支持Red Hat的产品?
事实并非如此。2016年1月Ansible 2.0首次亮相,对其脚本处理中的对多通用功能进行了改进。然而,2.1版加入了对容器、Microsoft Windows和Microsoft Azure支持。这些要么是Red Hat大力发展的技术,要么是Red Hat合作伙伴的产品。但是这些仍然是高层上的变化,并没有与Red Hat的实际工作紧密结合。
新增加的Azure相关功能包括对 Azure资源管理器(Azure Resource Manager)的支持。Azure资源管理器通过模板和基于角色的访问控制(RBAC)持续、重复地发布应用程序资源。这些恰恰是Ansible所擅长的,因此Ansible能够有效提升Azure现在的处理方式。
Windows方面,现在Ansible可以管理更多的操作系统功能,比如 Windows文件共享和防火墙。Ansible还可以使用NTLM(NT LAN Manager,Windows NT 早期版本的标准安全协议)取代Kerberos直接管理新加入域内的机器。在安装多个软件或内核驱动时会经常遇到需要重启系统的情况,新增加的 win_reboot命令使得脚本中的处理变得更加简单。
Ansible 2.1彻底重写对容器的支持——该功能同样也是Red Hat大力发展的领域。新版本对现有的Docker模块进行了重写,提供了一个新的docker_service模块,使得Docker Compose可以嵌入到Ansible playbook中。这就意味着,Ansible已经完全控制了容器运行需要的部署基础架构,并且具备了容器构建管理紧密相关的接口能力。
Ansible 2.1第3个主要新增功能为Cisco、Juniper、Cumulus、Arista和OpenSwitch这样的网络平台提供自动化控制。
截至目前,尽管没有直接支持OpenShift或RHEL,但是Red Hat还是根据自己的利益从通用容器的角度为Ansible开发了新特性。这个思路非常可取。相比粗暴地加入对Red Hat基础设施支持,这种方式对现有的Ansible用户以及他们日常使用显得更加公平。希望Red Hat能够始终如一。