下面的代码片段不起作用:
vars:
var1: "var"
tasks:
- name: "sth"
raw: "anothersth"
register: status
failed_when: var1 in status.stdout我不知道是否有办法达到我打算做的事情?
===============================================================
准确的剧本和描述:
让我解释一下我想做的事:
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`发布于 2019-12-02 20:30:03
问:“如果在开始和结束时重复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)https://stackoverflow.com/questions/59145673
复制相似问题