我正在考虑从Puppet迁移到Ansible。
从我的角度来看,Ansible的优势之一就是编写模块相对容易(碰巧我不懂Ruby,但我知道Python)。但在我开始写自己的作品之前,我想看看目前可用的内容。
如果我想有效地使用ansible,首先要做的事情之一是查看现有模块所涵盖的任务。
据我所知,大多数模块都与Red Hat Linux兼容,如果我计划在Ubuntu下使用它,我需要有一种方法来过滤那些目前不支持它的方法。
我无法找到任何"可传播性"标记modules上列出的模块。
这是否意味着我需要单独打开每个模块并检查描述以查看作者是否提到了我的平台?
答案 0 :(得分:2)
绝大多数Ansible模块都可以在所有主要的Linux平台(以及可能较少的发行版)上运行,这在很大程度上是因为它们基于python和python模块,这些模块在Linux发行版中是高度独立的。如果存在与平台相关的差异,您会发现大多数(如果不是全部)核心模块不仅支持主要的Linux平台,还支持FreeBSD,Solaris等其他平台。
例如,查看source for the user module。它导入{{1}} python模块,该模块尝试尽可能多地检索特定于平台的信息。它有助于python程序尽可能地与平台无关。如果仔细查看用户模块,您还会发现它具有针对不同操作系统的特定情况,例如各种版本的BSD,Solaris甚至AIX。
不幸的是,正如您所发现的那样,没有关于平台支持的官方文档。除了模块文档和模块源代码中的注释之外,还有其他许多内容。但是,话虽如此,我认为所有核心模块以及大多数(如果不是全部)附加模块都可以在Ubuntu上正常运行,这是一个相当安全的选择。毕竟,他们的商业产品Ansible Tower是supported on Ubuntu 12.04 and 14.04。如果Ansible本身在这些平台上无法正常工作,他们就不会这样做。