Ansible lineinfile Regex - PullRequest
       9

Ansible lineinfile Regex

1 голос
/ 13 марта 2020

У меня есть этот текст

[john]
age=20
group=wheel
[doe]
age=30
group=wheel
[stack]
age=undefined
group=wheel
color=white
[overflow]
age=undefined

, и я хочу захватить с первым регулярным выражением:

age=20

и group = wheel of [stack] с второй

1 Ответ

0 голосов
/ 15 марта 2020

Вы пытаетесь использовать регулярные выражения для четко определенного формата текстового файла; ini lookup - это то, что вы на самом деле ищете:

# assuming the ini file is /tmp/foo.ini
tasks:
- set_fact:
    john_age: '{{ lookup("ini", "age section=john file=/tmp/foo.ini") }}'
    stack_group: '{{ lookup("ini", "group section=stack file=/tmp/foo.ini") }}'

тогда, в случае, когда ваш контент на самом деле не находится в файле, кажется, что поиск работает только с files , поэтому вам потребуется временно записать его в файл:

tasks:
- copy:
    dest: /tmp/foo.ini
    content: '{{ the_ini_from_your_question_goes_here }}'
- set_fact:
    john_age: '{{ lookup("ini", "age section=john file=/tmp/foo.ini") }}'
    stack_group: '{{ lookup("ini", "group section=stack file=/tmp/foo.ini") }}'
- file:
    path: /tmp/foo.ini
    state: absent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...