【问题标题】:Fetch the variables from .sh file into a playbook将 .sh 文件中的变量提取到剧本中
【发布时间】:2019-08-04 13:01:05
【问题描述】:

我正在尝试获取存储在 variables.sh 文件中的变量,例如 Ansible 剧本中的以下内容:

INSTALL_JBOSS=Y 导出 INSTALL_JBOSS

INSTALL_DSS=Y 导出 INSTALL_DSS

INSTALL_ESB=Y 导出 INSTALL_ESB

INSTALL_JMS=N 导出 INSTALL_JMS . . . .

在我的 yaml 中的剧本中,我正在使用这样的变量: 其中 zipfile 是变量的名称。通常这就是在剧本中实现变量值的方式。现在我想使用变量 INSTALL_JBOSS 的值,即剧本中的“Y”,但如果我使用 {{INSTALL_JBOSS}},它不会将该值识别为存储在 .sh 文件中。另一方面,当我使用带有“vars_files”选项的 yaml 文件中定义的变量时,我可以轻松地将它们与 {{}} 一起使用。但我不能对 .sh 文件做同样的事情。

这个 .sh 文件有我想在我的剧本中使用的环境变量。

当我尝试在 var_files 选项中使用 .sh 文件并运行 playbook 时,会出现以下错误:错误!变量文件必须包含变量字典或字典列表。

有什么想法吗?

谢谢

【问题讨论】:

    标签: bash ansible sh


    【解决方案1】:

    上面的变量文件不能直接在ansible中使用,因为它是基于shell语法的变量源代码。

    我的建议是使用 shell 模块源这个文件并做你想做的事。

    【讨论】:

    • 是的,已经这样做了,但如果有直接的方法就想这样做。无论如何谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2020-08-16
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多