我在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
变量中没有使用任何东西都可以正常工作。我已经阅读了文档,但没有发现这是不正确的迹象。唯一可能看起来奇怪的是字符串后面的正则表达式。也许某些东西不同步?
任何暗示都很有帮助,非常感谢。
答案 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 }} ....."