当未定义注册变量时,如何轻松跳过ansible任务?

当未定义注册变量时,如何轻松跳过ansible任务?,ansible,Ansible,在某些情况下,我确实在ansible中有一个寄存器:varname,以后我只想在varname.stdout已定义且不为空时执行一些任务 我怎样才能轻松做到这一点,避免臭名昭著的: "One or more undefined variables: 'dict' object has no attribute 'stdout'" 当:varname已定义且hasattr(varname,'stdout')时,我尝试了,但它似乎没有绕过该任务,我仍然收到相同的错误。(另请参阅) 如果

在某些情况下,我确实在ansible中有一个
寄存器:varname
,以后我只想在
varname.stdout
已定义且不为空时执行一些任务

我怎样才能轻松做到这一点,避免臭名昭著的:

   "One or more undefined variables:
   'dict' object has no attribute 'stdout'"
当:varname已定义且hasattr(varname,'stdout')时,我尝试了
,但它似乎没有绕过该任务,我仍然收到相同的错误。

(另请参阅)

如果你想变得非常明确,比如
when:varname已定义,varname.stdout已定义,varname.stdout!=''时应该适用于您的目的

当:res.stdout被定义时
适用于ansible 2.1.0.0。当
res
res.stdout
未定义时,不要抛出错误。事实上,这应该是宣传Ansible简单性的海报的一部分