Ansible过滤器stdout_lines剪切或拆分

时间:2018-11-25 03:18:03

标签: python split ansible jinja2

我有一个包含几行的变量,我想找到一个具有该值的行,并在基于分隔符的分割之后,仅采用该特定行的第一个值。

Task:1
   - debug:
       var: blabla.stdout_lines

Output
  blabla.stdout_lines:
  - 1 test1 aaa
  - 2 test0 bbb
  - 3 test444 ccc


Task:2
   - name: test
     debug:
       msg: "{{ blabla.stdout | select('search', 'test1') | list }}"
Output
  msg:
  -  1 test1 aaa

我想进行分割,以便直接在task2中仅接受值“ 1”。我试图做一个文本分割并切成文本,但似乎没有用。 我试图在Task2中添加另一个Jinja过滤器。

1 个答案:

答案 0 :(得分:0)

设法按照Matthew的建议使用regex_search()

   - name: Extract valuevariables

     set_fact:

        webapps_not: "{{ blabla.stdout | regex_search('.+?(?=no)') }}"


   - name: Show value

     debug: var=blabla_not