Ansible json_query как убрать квадратную скобку и двойные кавычки - PullRequest
0 голосов
/ 23 марта 2020

Я хочу отфильтровать эту переменную hp, но она получит печать в виде квадратной скобки с "". как убрать квадратную скобку с "" только для того, чтобы получить единственное значение. Может кто-нибудь, пожалуйста, помогите здесь? Я выглядел как регулярное выражение, но не смог найти точный синтаксис.

srv_make1: '{{ basic_params | from_json | json_query("servers.server_details[*].srv_make") }}'

Спасибо

1 Ответ

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

Q: «Как убрать квадратную скобку и двойные кавычки?»

json_query всегда возвращает список. От того, как отображается список, зависит от задачи debug. Например,

  vars:
    srv_make1: [a,b,c]
  tasks:
    - debug:
        var: srv_make1
    - debug:
        msg: "{{ srv_make1|to_yaml }}"

дать

TASK [debug] ***
ok: [localhost] => {
    "srv_make1": [
        "a", 
        "b", 
        "c"
    ]
}

TASK [debug] ***
ok: [localhost] => {
    "msg": "[a, b, c]\n"
}

Можно использовать template и записать список в файл без скобок и кавычек. Например шаблон

shell> cat srv_make1.conf.j2
{% for item in srv_make1 %}{{ item }} {% endfor %}

с заданием

    - template:
        src: srv_make1.conf.j2
        dest: srv_make1.conf

дает

shell> cat srv_make1.conf
a b c
...