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

  • Guillermo Beltri
  • 谢丽

2016 年 1 月 31 日

话题:DevOps语言 & 开发

近日,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 已经准备好时就发布了。

查看英文原文:Ansible 2.0 Generally Available Short After Red Hat Acquisition

DevOps语言 & 开发