我有以下内容:
- set_fact:
test_string: "{{ htmlres.content | regex_search('test-([0-9]+)', '\\1') | first}}"
这将检索包含在内容2
中的字符串的一部分。htmlres.content
test-2
所以现在我尝试比较该输出的结果,如果它不是 2,则执行失败,所以我尝试了这个:
- name: Fail if test_string is not 2
fail: msg="Incorrect string. Expected 2, but instead got {{ test_string }}"
when: test_string != 2
但是我已经输出了 test_string 的内容,而且我确实知道它是 2。为什么会失败呢?
我曾尝试将| string
和添加| int
到的末尾,test_string
因为我第一次认为这将是类型比较的问题,但这也不起作用。
谢谢。
答案1
除非jinja2_native启用后,模板结果始终为字符串。您需要在比较时考虑到这一点。
- name: Fail if test_string is not 2
fail: msg="Incorrect string. Expected 2, but instead got {{ test_string }}"
when: test_string | int != 2
或者
- name: Fail if test_string is not 2
fail: msg="Incorrect string. Expected 2, but instead got {{ test_string }}"
when: test_string != '2'