在任务条件中使用ansible变量

食人鱼
  1. 当我在条件为fail_when的条件中使用Ansible变量时,Ansible会抱怨并失败,并告诉我我不能对failed_when使用Jinja2表达式。

以下代码段不起作用:

  vars:
  var1: "var"
  tasks:
    - name: "sth"
      raw: "anothersth"
      register: status
      failed_when: var1 in status.stdout
  1. 我想在上述示例中使用正则表达式,并在正则表达式中使用变量var1。这也失败了。如果在stdout_lines的开头和结尾重复var1,我想使任务失败。我在想这样的事情:

    failed_when:status.stdout中的regex(“ ^ {{var1}} /.*/ {{var1}} $”)

我想知道是否有一种方法可以实现我的目标?

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

确切的游戏和描述:

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

  • 使用“原始”模块运行命令并注册stdout_lines。
  • 遍历项目列表,其中list是当前可访问主机的事实
  • 当在已注册的stdout中搜索模式并在未找到任务时使任务失败时,请使用failed_when

peers_underlay是主机文件中定义的列表:

peers_underlay: - ip: "172.16.1.2" - ip: "172.16.1.6"

这是戏:

- hosts: leaf-2, spine-1 gather_facts: no tags: [ verify ] vars: bgp_underlay: "show ip bgp summary"
tasks: - name: "underlay bgp test" raw: "{{ bgp_underlay }}" register: underlay_status with_items: "{{ peers_underlay }}" failed_when: not regex(".*/{{ item['ip'] }}/.*/Estab/.*") in underlay_status.stdout_lines

弗拉基米尔·博特卡

问:“如果在开头和结尾重复var1,则任务失败。”

答:可以测试字符串例如使用regex

- hosts: localhost
  vars:
    my_stdout1: 'ABC dlkjfsldkfjsldkfj ABC'
    my_stdout2: 'alkdjflaksdjflakdjflaksjdflaksdjflasj'
    var1: 'ABC'
    my_regex: '^{{ var1 }}(.*){{ var1 }}$'
  tasks:
    - debug:
        msg: my_regex match my_stdout1
      when: my_stdout1 is regex(my_regex)
    - debug:
        msg: my_regex match my_stdout2
      when: my_stdout2 is regex(my_regex)

"msg": "my_regex match my_stdout1"

特定的任务序列将是

  vars:
    var1: "var"
    my_regex: '^{{ var1 }}(.*){{ var1 }}$'
  tasks:
    - name: "sth"
      raw: "anothersth"
      register: status
      failed_when: status.stdout is regex(my_regex)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在异步任务中使用外部类变量

来自分类Dev

Capistrano 3:在任务中使用服务器自定义变量

来自分类Dev

在配置中使用Grunt任务变量

来自分类Dev

在任务中使用异步套接字

来自分类Dev

可变模板中的Ansible使用任务返回变量

来自分类Dev

Ansible:在标准循环中使用变量

来自分类Dev

Ansible任务变量中的使用条件

来自分类Dev

在Celery任务中使用导入的变量

来自分类Dev

Ansible注册变量未在任务中保留

来自分类Dev

如何在任务中使用命令行参数退出应用程序

来自分类Dev

如何使用本地命令设置在ansible任务中使用的多个变量

来自分类Dev

在Ansible中使用嵌套的with_items任务

来自分类Dev

如何在不创建任务组参数的情况下在任务组中使用密钥库密钥

来自分类Dev

如何告诉Ansible在任务中包括本地主机

来自分类Dev

在任务中使用Ansible成为密码

来自分类Dev

在Ansible模板中使用变量

来自分类Dev

在条件中使用多个循环的Ansible

来自分类Dev

Capistrano 3:在任务中使用服务器自定义变量

来自分类Dev

在任务中使用异步套接字

来自分类Dev

在C Sharp或VB .Net中使用ASANA API在任务中添加附件

来自分类Dev

为什么我不能在任务中使用Capistrano的info方法?

来自分类Dev

Ansible任务变量中的使用条件

来自分类Dev

在C ++中使用Win32 Api在任务栏中设置NOTIFY ICON

来自分类Dev

为什么在任务工厂中使用ASYNC-AWAIT?

来自分类Dev

如何在 Ansible 中使用 when 条件?

来自分类Dev

如何在任务窗格应用程序中使用 OfficeJs 获取文档共享链接?

来自分类Dev

使用在任务数组中使用的令牌停止任务

来自分类Dev

Ansible:在条件“何时”检查中使用变量的正确方法

来自分类Dev

Ansible 在变量中使用变量

Related 相关文章

  1. 1

    在异步任务中使用外部类变量

  2. 2

    Capistrano 3:在任务中使用服务器自定义变量

  3. 3

    在配置中使用Grunt任务变量

  4. 4

    在任务中使用异步套接字

  5. 5

    可变模板中的Ansible使用任务返回变量

  6. 6

    Ansible:在标准循环中使用变量

  7. 7

    Ansible任务变量中的使用条件

  8. 8

    在Celery任务中使用导入的变量

  9. 9

    Ansible注册变量未在任务中保留

  10. 10

    如何在任务中使用命令行参数退出应用程序

  11. 11

    如何使用本地命令设置在ansible任务中使用的多个变量

  12. 12

    在Ansible中使用嵌套的with_items任务

  13. 13

    如何在不创建任务组参数的情况下在任务组中使用密钥库密钥

  14. 14

    如何告诉Ansible在任务中包括本地主机

  15. 15

    在任务中使用Ansible成为密码

  16. 16

    在Ansible模板中使用变量

  17. 17

    在条件中使用多个循环的Ansible

  18. 18

    Capistrano 3:在任务中使用服务器自定义变量

  19. 19

    在任务中使用异步套接字

  20. 20

    在C Sharp或VB .Net中使用ASANA API在任务中添加附件

  21. 21

    为什么我不能在任务中使用Capistrano的info方法?

  22. 22

    Ansible任务变量中的使用条件

  23. 23

    在C ++中使用Win32 Api在任务栏中设置NOTIFY ICON

  24. 24

    为什么在任务工厂中使用ASYNC-AWAIT?

  25. 25

    如何在 Ansible 中使用 when 条件?

  26. 26

    如何在任务窗格应用程序中使用 OfficeJs 获取文档共享链接?

  27. 27

    使用在任务数组中使用的令牌停止任务

  28. 28

    Ansible:在条件“何时”检查中使用变量的正确方法

  29. 29

    Ansible 在变量中使用变量

热门标签

归档