如何在ansible中使用when语句

如何在ansible中使用when语句,ansible,Ansible,有人可以检查脚本吗?我不知道为什么“when”语句失败了 确定:[labvMME01]=>{ “味精”:[ “等等!”, “导出结果:/tmp/DPE\u CORE/home/jackl/ConfigFile\u来自导出” ] }******************************************************************* 致命:[labvMME01]:失败!=>{“msg”:“该任务包含一个带有未定义变量的选项。错误为:'path'未定义\n\n错误似乎

有人可以检查脚本吗?我不知道为什么“when”语句失败了

确定:[labvMME01]=>{ “味精”:[ “等等!”, “导出结果:/tmp/DPE\u CORE/home/jackl/ConfigFile\u来自导出” ] }******************************************************************* 致命:[labvMME01]:失败!=>{“msg”:“该任务包含一个带有未定义变量的选项。错误为:'path'未定义\n\n错误似乎为

请按以下方式尝试

- name: get the path of the config file
  set_fact: path="{{command_result.stdout}}"
  when: '"Exported" in command_result.stdout'

当:“‘导出’在命令结果中。标准输出行”时,这些命令找不到匹配的字符串。您可以看到标准输出行包含[“等待!”,“导出结果:/tmp/DPE_CORE/home/jackl/ConfigFile_from_export”]命令输出结果也请询问[检查结果]************************************************************************************************确定:[labvMME01]=>{“msg”:[“等待!”,“导出结果:/tmp/DPE_CORE/home/jackl/ConfigFile_from_export”]}@jackliu在试图帮助您时,人们正在您的问题中寻找最准确的信息,而不是在评论中。请通过编辑将补充信息直接添加到您的问题中。谢谢。这次它起作用了。但我想知道为什么它不适用于标准输出行。比较是用字符串完成的。但是标准输出行提供了一个无法比较的字符串列表。以下是命令_result.stdout.TASK[检查结果]***************************************************************************************************************************ok:[labvMME01]=>{“msg”:“等待!\n报告的结果:/tmp/DPE_CORE/home/jackl/ConfigFile\u from_导出“是,stdout在中有值”,这意味着它是一个字符串,但stdout_行在[“”]中有值,这意味着它是一个列表,因此它不起作用。感谢您的支持
- name: get the path of the config file
  set_fact: path="{{command_result.stdout}}"
  when: '"Exported" in command_result.stdout'