将.sh文件中的变量提取到剧本中

时间:2019-03-13 18:23:57

标签: bash ansible sh

我正试图获取存储在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}}>其中zipfile是变量的名称。通常这就是在剧本中如何实现变量值。现在我想使用变量INSTALL_JBOSS的值(在剧本中为“ Y”),但是如果我使用{{INSTALL_JBOSS}},则该值无法识别为存储在.sh文件中的值。另一方面,当我使用带有“ vars_files”选项的yaml文件中定义的变量时,可以轻松地将此{{}}与它们一起使用。但是我无法对.sh文件做同样的事情。

此.sh文件具有我要在我的剧本中使用的环境变量。

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

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

以上可变文件不能直接在ansible中使用,因为它是基于Shell语法进行可变源的。

我的建议是使用shell模块将此文件作为源,并执行您想做的事情。