近日, 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
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论