【发布时间】:2017-05-30 10:15:02
【问题描述】:
我正在编写一个安装和更新某些特定企业软件的 Ansible 角色。由于各种原因,我想将已安装的版本(如果已安装)与我尝试安装的版本进行比较,但主要是为了能够在实际执行安装程序之前验证安装是必要的和允许的。安装程序包和安装都包含一个 INI 文件,其中包含组件版本作为选项 (component_name=version)。
在 Ansible 中从远程节点上的某些 INI 文件中读取某些选项的正确方法是什么?据我了解:
-
ini_file-module 是用来修改目标文件的,这不是我想做的。 - ini 查找适用于控制器上的文件,而不是远程节点上的文件。
我可以在这里看到两种可能性:
- 使用
fetch-module 从远程节点获取文件到控制器机器,然后使用ini查找。 - 使用
command或shell模块,使用grep/sed/awk 解析INI 文件并注册输出。
第一个选项似乎不必要地笨拙(尽管我确实意识到我可能会以错误的方式思考它)。从另一个角度来看,第二个似乎有点笨拙(另一种 INI 文件解析方法),但我在这里也可能错了。现在我倾向于后者,但我不禁想到必须有一个更简单,更优雅的方式。
【问题讨论】:
标签: ansible