在任务条件下使用ansible变量 当我在failed_When条件中使用Ansible变量时,Ansible抱怨并失败,告诉我不能在failed_When中使用Jinja2表达式

在任务条件下使用ansible变量 当我在failed_When条件中使用Ansible变量时,Ansible抱怨并失败,告诉我不能在failed_When中使用Jinja2表达式,ansible,conditional-statements,jinja2,Ansible,Conditional Statements,Jinja2,以下代码段不起作用: vars: var1: "var" tasks: - name: "sth" raw: "anothersth" register: status failed_when: var1 in status.stdout 我想在上面的示例中使用regex,并在regex中使用变量var1。这也失败了。 如果var1在stdout_行的开头和结尾重复,我希望任务失败。我是这样想的: 在status.stdout中的rege

以下代码段不起作用:

  vars:
  var1: "var"
  tasks:
    - name: "sth"
      raw: "anothersth"
      register: status
      failed_when: var1 in status.stdout
  • 我想在上面的示例中使用regex,并在regex中使用变量var1。这也失败了。 如果var1在stdout_行的开头和结尾重复,我希望任务失败。我是这样想的:

    在status.stdout中的regex(“^{{var1}}/*/{{{var1}}}$”)时失败

  • 我想知道是否有办法实现我的目标

    ===============================================================

    准确的播放和描述:

    让我解释一下我想做什么:

    • 使用“raw”模块运行命令并注册标准输出行
    • 迭代项目列表,其中列表是当前ansible主机的事实
    • 在已注册的标准输出中搜索模式时使用failed_,如果未找到,则任务将失败
    参考底图是在主体文件中定义的列表:

    peers\u参考底图:
    -ip:“172.16.1.2”
    -ip:“172.16.1.6”

    这就是剧本:

    -主机:叶-2,脊椎-1
    收集事实:不
    标签:[验证]
    变量:
    bgp_参考底图:“显示ip bgp摘要”
    任务: -名称:“基线bgp测试” 原始:{{bgp_参考底图}}” 寄存器:参考底图状态 带_项:“{{peers_underlay}” 当:在参考底图状态下不是正则表达式(.*/{{item['ip']}/*/Estab/*])时失败。标准输出行

    Q:“如果var1在开始和结束时重复,则任务失败。”

    A:有可能。例如,使用
    regex

    -hosts:localhost
    变量:
    my_stdout1:“ABC dlkjfsldkfjsldkfj ABC”
    我的stdout2:'alkdflaksdjflaksjdflaksdjflasj'
    var1:‘ABC’
    my_regex:“^{{var1}}(.*){{var1}}$”
    任务:
    -调试:
    msg:my_regex匹配my_stdout1
    何时:my_stdout1是正则表达式(my_regex)
    -调试:
    msg:my_regex与my_stdout2匹配
    时间:my_stdout2是正则表达式(my_regex)
    
    给予

    “msg”:“我的正则表达式与我的stdout1匹配”
    
    特定的任务顺序是

    vars:
    var1:“var”
    my_regex:“^{{var1}}(.*){{var1}}$”
    任务:
    -名称:“某物”
    raw:“另一个”
    注册:状态
    当:status.stdout为正则表达式(my_regex)时失败
    
    谢谢。这可能有助于处理不同的任务序列。然而,我不认为这是我想要的。我更新并提供了我的游戏细节。如果你能评论这些,我会很高兴的。不客气。这也有助于解决你的问题。我已经添加了您的任务序列。:)当在任务外定义模式并使用模式作为条件中正则表达式的输入时,它起作用。Ansible不再抱怨无效的jinja2表达式。