ansible

时间:2017-12-15 13:39:52

标签: ansible

我在ansible中扩展变量时遇到问题。该变量保存应用程序文件夹的路径。这应该被扩展并用于运行应用程序。

mlcp_path: '/home/<user>/mlcp-9.0.3'

shell:  "{{ mlcp_path }}/bin/mlcp.sh"  import -host {{ ml_dbserver }} .....

这导致:

  

shell:“{{mlcp_path}}”/ bin / mlcp.sh“import -host {{ml_dbserver}}    - port {{ml_dbserver_port}} -username {{ml_dbserver_user}} - input_file_path {{mlcp_input_file_path}} -password {{   ml_dbserver_password}} -output_uri_replace “{{mlcp_uri_replace   }“ - output_permissions {{mlcp_output_permissions}}   -output_collections {{mlcp_output_collections}}                                                     我们可能是错的,但这个看起来可能是缺少引号的问题。

mlcp_path变量中没有使用任何东西都可以正常工作。我已经阅读了文档,但没有发现这是不正确的迹象。唯一可能看起来奇怪的是字符串后面的正则表达式。也许某些东西不同步?

任何暗示都很有帮助,非常感谢。

2 个答案:

答案 0 :(得分:1)

你有引用问题。

应该是这样的:

shell: "{{ mlcp_path }}/bin/mlcp.sh import -host {{ ml_dbserver }} -port {{ ml_dbserver_port }} -username {{ ml_dbserver_user }} -input_file_path {{ mlcp_input_file_path }} -password {{ ml_dbserver_password }} -output_uri_replace '{{ mlcp_uri_replace }}' -output_permissions {{ mlcp_output_permissions }} -output_collections {{ mlcp_output_collections }}"

答案 1 :(得分:1)

也许您可以尝试将引号放在整行上并将变量声明为变量(不被视为模块):

vars: 
    mlcp_path: '/home/<user>/mlcp-9.0.3'

shell:  "{{ mlcp_path }}/bin/mlcp.sh  import -host {{ ml_dbserver }} ....."