@lsmn
2016-01-31T07:48:28.000000Z
字数 1249
阅读 2600
Ansible
RedHat
playbook
近日,Ansible公司正式发布了Ansible v2.0。在这个版本中,该公司在努力保持向后兼容现有playbook的同时完成了了不起的重构工作。发布声明中包含多项改进,如块内异常处理,针对不同的任务引入新的执行策略,以及通过模块改进同其他服务的连接。
近日,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在2016年10月收购了Ansible公司,那时,2.0 beta版本刚刚发布了没有几天。InfoQ就Red Hat对这个新版本的影响请教了Cammarata:
Red Hat没有对2.0版本提出任何意见。正如你看到的那样,在交易完成之前的一段时间里,我们一直忙于交易,当我们觉得Ansible已经准备好时就发布了。
查看英文原文:Ansible 2.0 Generally Available Short After Red Hat Acquisition