天天看点

Ansible 2.0正式发布,距离被Red Hat收购尚不足3个月

近日,ansible公司正式发布了ansible v2.0。在这个版本中,该公司在努力保持向后兼容现有playbook的同时完成了了不起的重构工作。发布声明中包含多项改进,如块内异常处理,针对不同的任务引入新的执行策略,以及通过模块改进同其他服务的连接。

从这个版本开始,用户可以在他们的playbook里定义块了。任务块允许用户采用同许多编程语言一样的异常处理方式(例如python的try/except/finally结构)。此外,用户可以借助不同的属性(如标签和条件)分组管理相关任务。

该版本还包含一种控制playbook执行的新方法。ansible定义了三种playbook策略,使用户可以配置不同任务在目标主机上的执行方式。现有的预置脚本遵循“线性策略”,在继续执行下个任务之前,一个任务会在所有主机上执行。“自由策略”允许每个主机尽快执行完自己的playbook,而不需要等待所有其他的主机。“序列”策略保证一组主机在另一组主机开始前完成本组的任务。另外,用户可以通过插件提供自己的策略。

该版本新增了200多个模块,改进并扩展了对现有平台的支持,如amazon web services、vmware、microsoft windows、docker。有一组全新的模块简化了openstack的管理。该版本中还出现了一个新的docker插件。

插件api的变化迫使开发人员在升级到v2.0时必须检查他们的插件。playbook中新增的动态include也可能会产生一些问题。ansible高级首席软件工程师james cammarata就这些兼容性问题同infoq分享了他的观点:

我认为,许多用户不会受api变化的影响,将插件移植到新api非常简单。困难之处在于编写可以完美兼容两个api版本的插件,如果有需要,我们将来可能会解决那个问题。

目前,针对引入动态include所产生的问题,我们正在寻找一种解决方案,很可能包含在2.1版本中(不过,如果我们觉得合适的话,我们可能会更早地引入)。

red hat在2015年10月收购了ansible公司,那时,2.0 beta版本刚刚发布了没有几天。infoq就red hat对这个新版本的影响请教了cammarata:

red hat没有对2.0版本提出任何意见。正如你看到的那样,在交易完成之前的一段时间里,我们一直忙于交易,当我们觉得ansible已经准备好时就发布了。

本文转自d1net(转载)