ansible regex_search 带变量
ansible regex_search with variable
如何在变量出现在 regex_search
参数中的 ansible 剧本中使用正则表达式找到匹配项?
以下剧本找不到匹配项...当 运行 使用:ansible-playbook playbook.yml
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
pattern: "{{ 'foobar' | regex_search('foo') }}"
- set_fact:
m: "{{ 'beefoo' | regex_search('bee{{ pattern }}') }}"
- debug:
msg: "hi {{ m }}"
取决于您使用的 ansible
版本。据我所知,您可以在大于 2.4.0 的版本中使用该表达式。对于较低版本,您可以使用 regex_search('^' + pattern | string)
。
所以你的代码将是这样的:
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
pattern: "{{ 'foobar' | regex_search('foo') }}"
- set_fact:
m: "{{ 'beefoo' | regex_search('bee' + pattern | string) }}"
- debug:
msg: 'hi ' + m | string
想与那些可能需要它的人分享我的复杂案例,其中包括积极的前瞻性、积极的回顾和可变的 regex_search
。
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
pattern: "{{ 'foobar' | regex_search('foo') }}"
- set_fact:
m: "{{ 'beefoo' | regex_search('(?<=prefix-' + pattern | string + '-)' + '([0-9.]+)' + '(?=suffix)') }}"
- debug:
msg: "hi {{ m }}"
如何在变量出现在 regex_search
参数中的 ansible 剧本中使用正则表达式找到匹配项?
以下剧本找不到匹配项...当 运行 使用:ansible-playbook playbook.yml
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
pattern: "{{ 'foobar' | regex_search('foo') }}"
- set_fact:
m: "{{ 'beefoo' | regex_search('bee{{ pattern }}') }}"
- debug:
msg: "hi {{ m }}"
取决于您使用的 ansible
版本。据我所知,您可以在大于 2.4.0 的版本中使用该表达式。对于较低版本,您可以使用 regex_search('^' + pattern | string)
。
所以你的代码将是这样的:
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
pattern: "{{ 'foobar' | regex_search('foo') }}"
- set_fact:
m: "{{ 'beefoo' | regex_search('bee' + pattern | string) }}"
- debug:
msg: 'hi ' + m | string
想与那些可能需要它的人分享我的复杂案例,其中包括积极的前瞻性、积极的回顾和可变的 regex_search
。
- hosts: localhost
gather_facts: no
tasks:
- set_fact:
pattern: "{{ 'foobar' | regex_search('foo') }}"
- set_fact:
m: "{{ 'beefoo' | regex_search('(?<=prefix-' + pattern | string + '-)' + '([0-9.]+)' + '(?=suffix)') }}"
- debug:
msg: "hi {{ m }}"