ansbile stdout_line для новых строк - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь получить bash инструмент для вывода дБ в строку ответа, но не нашел никакого рабочего решения

   - set_fact:
        db_data: "{{ db.stdout_lines  }}"
   - debug: var=db_data

Вот отладочный вывод

TASK [debug] ***********************************************************************************************************************************************************************
ok: [localhost] => {
    "db_data": [
        "host: localhost",
        "username: user",
        "password: pass",
        "database: db_name"
    ]
}

Как можно получить хост, имя пользователя, пароль, базу данных как уникальные строки?

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

Q: "Получить хост, имя пользователя, пароль, базу данных как уникальные строки."

A: Вместо списка создайте словарь. Затем просто обратитесь к атрибутам. Например

   - set_fact:
        db_data: "{{ db_data|default({})|combine(item|from_yaml) }}"
      loop: "{{ db.stdout_lines }}"
    - debug:
        var: db_data
    - debug:
        var: db_data.username

дать

    "db_data": {
        "database": "db_name", 
        "host": "localhost", 
        "password": "pass", 
        "username": "user"
    }

    "db_data.username": "user"
0 голосов
/ 14 февраля 2020
- debug:
       msg: "{{ item.split(':')[1] }}"
  with_items: " {{ db_data }} "
...