首页 > 解决方案 > Ansible - 版本 2、3 和 4 之间有什么区别?

问题描述

之前我使用的是 ansible 2.x,现在最新的 ansible 版本是 4.x。已阅读Ansible 路线图宣布社区 Ansible 3.0.0 软件包,但不清楚版本 2、3 和 4 之间有什么区别。看起来版本 2.x(基础或核心)包含在 Ansible 3.x 中,并且似乎包含在4.x 也是如此。目前尚不清楚使用 Ansible 2.9 开发的 playbook 是否与 Ansible 4.x 兼容。

我怎样才能清楚地理解它们的区别?请提供最佳资源以了解 Ansible 2、3 和 4 之间的差异。

今天,Ansible 开源世界中有 3 个不同的人工制品:

Ansible Core - 最小的 Ansible 语言和运行时(即将从 ansible-base 重命名) Ansible Collections on Galaxy(支持社区) Ansible 社区包 - Ansible 安装,包括 ansible-base/core 以及社区策划的集合 现在这些人工制品是单独管理的,他们的版本也不同。展望未来,Ansible Core 将保持其现有的编号方案(类似于 Linux 内核)。ansible-base 2.10 之后的下一个 Ansible Core 版本将是 ansible-core 2.11。Ansible 社区包(Ansible Core + community Collections)正在采用语义版本控制。Ansible 社区包 2.10 之后的下一个版本是 3.0.0。
在此处输入图像描述

标签: ansible

解决方案


基本上,Ansible 只是想分离 ansible 运行时和模块/插件/回调/操作,以便可以独立管理它们。

在 Ansible 3.0 及更高版本上,它现在分为两个包:

  • ansible-core(它是 ansible 3.0 中的 ansible-base)、运行时和内置集合(核心模块/插件/等的候选清单)
  • ansible, 社区策划的收藏

ansible-core 包将维护现有的版本控制方案(类似于 Linux Kernel),而 ansible 包采用语义版本控制

所以 Ansible 4.0 包含两个包:ansible-core 2.12(带有 ansible.builtin 集合的运行时)和 ansible 4.0(社区策划的集合)。

我猜为 ansible 2.9.x 编写的剧本仍将继续工作并在 Ansible 4 (ansible-core 2.12.x) 中得到支持。正如 mdaniel 所提到的,最好开始使用合格的模块名称。

最好检查发行说明中的​​任何重大更改。

更多信息:


推荐阅读