Ansible фильтр stdout_lines вырезать или разделить - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть переменная, которая содержит несколько строк, и я хочу найти строку, имеющую это значение, и после разделения на основе разделителя и принять только первое значение этой конкретной строки.

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

Я хотел бы иметь разбиение, чтобы оно принимало только значение «1» непосредственно в задаче 2.Я попытался сделать текстовый раздел и нарезать его, но, похоже, он не работал.Я пытаюсь добавить еще один фильтр Jinja в Task2.

1 Ответ

0 голосов
/ 25 ноября 2018

удалось использовать regex_search (), как предложил Мэтью

   - name: Extract valuevariables

     set_fact:

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


   - name: Show value

     debug: var=blabla_not
...