首页 > 解决方案 > 如何在ansible中使用变量进行正则表达式搜索

问题描述

VLAN: "200"

- name: vlan details 
  ios_command:
    commands:
      - "show VLAN"           
  register: VLAN_status

- name: search vlan
  set_fact:
    serach_vlan: "{{ VLAN_status.stdout[0] | regex_search('^{{ VLAN }}\\s',multiline=true) }}"

如果已配置但未捕获,它应该捕获 vlan 值 200。任何想法?

标签: regexvariablesansible

解决方案


如文档中所述:

胡须不堆叠

来源:https ://docs.ansible.com/ansible/latest/reference_appendices/faq.html#when-should-i-use-also-how-to-interpolate-variables-or-dynamic-variable-names

您应该改用串联~

- set_fact:
    serach_vlan: "{{ VLAN_status.stdout[0] | regex_search('^' ~ VLAN ~ '\\s',multiline=true) }}"

推荐阅读