Ansible фильтр для объекта json - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь отфильтровать приведенную ниже информацию с помощью json_query.

{"instance_info": {
        "addresses": "inner-net_NC_ENG_IT_DPL=192.168.190.9, 10.199.224.71",
        "config_drive": "",
        "flavor": "IaaS.Vcpu_2.ram_6 (5b6cd78e-8804-4371-82bb-6d5b6e0b51c1)",
        "image": "rhel7.2 (5a03b53e-0950-4f94-97c1-9177ac7b09ae)",
        "security_groups": "name='default'",
        "user_id": "36f6ff7d2b0a47b4ae37ff804842583f",
        "volumes_attached": "id='a6682f1e-d974-449d-a8f8-2610c05796f6'"
    }
} 

Я хочу отфильтровать и зарегистрировать идентификатор Id (5b6cd78e-8804-4371-82bb-6d5b6e0b51c1) для повторного использования в моей роли. до сих пор, что я сделал.

- name: Getting the flavor_ID
  set_fact:
    flavor_id: "{{ (instance_info | to_json | from_json) | json_query(query) }}"
  vars:
    query: "flavor"

таким образом, выходной результат равен

"flavor": "IaaS.Vcpu_2.ram_6 (5b6cd78e-8804-4371-82bb-6d5b6e0b51c1)

, но я хочу только поставить как 5b6cd78e-8804-4371-82bb-6d5b6e0b51c1

1 Ответ

0 голосов
/ 11 ноября 2019

Переменные:

vars:
  flavor: "IaaS.Vcpu_2.ram_6 (5b6cd78e-8804-4371-82bb-6d5b6e0b51c1)"

Задачи:

- debug:
   msg: "{{flavor| regex_replace('^.* \\((.*)\\)','\\1')}}"

Выход:

ok: [localhost] => {"msg": "5b6cd78e-8804-4371-82bb-6d5b6e0b51c1"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...