регистрация переменных из стандартного вывода с помощью regex_search - PullRequest
0 голосов
/ 18 октября 2019

Я следил за многочисленными связанными ветками на эту тему, и, вероятно, уже близко, но пока нет.

Отправка URI GET в инструмент Infoblox IPAM для поиска IP-адреса для удаления. Инструмент IPAM отправляет обратно код эталонного объекта, используемый для возврата вызова для удаления. Я должен выхватить этот код из stdout и поместить в PUT URL для завершения процесса.

Я регистрирую первый GET-ответ в регистре: api_response_raw. Регулярное выражение было проверено.

Я экранировал символы в регулярном выражении, изменил кавычки с одного на двойной, проверил мои переменные register и set_facts безрезультатно.

tasks:
  - name: Get Iblox IPAddr Reference Object via RESTful API
    uri :
      url: https://iblox/wapi/v2.2/ipv4address?ip_address={{ vpn_source_public_ipaddr }}
      method: GET
      user: svc_Network_Automation
      password: 6d8@Vv
      return_content: yes
      Header_Content-Type: "application/json"
      body_format: json
      validate_certs: no
    register: api_response_raw

  - name: Extract _Ref Object from API Response
    set_fact:
      api_ref_object: "{{ api_response_raw.stdout | regex_search('record:host/(\w*):(.{1,})%20') }}"

  - name: show _ref object
    debug: var=api_ref_object

  - name: Delete Iblox IPAddr Reference Object via RESTful API
    uri :
      url: https://iblox/wapi/v2.2/ipv4address?ip_address={{ api_ref_object }}
      method: PUT
      user: svc_Network_Automation
      password: 6d8@Vv
      return_content: yes
      Header_Content-Type: "application/json"
      body_format: json
      validate_certs: no

Я получаю разные ошибки в зависимости отНа каких небольших изменениях я пытаюсь: 1) Произошла непредвиденная ошибка шаблонов ... ожидаемая строка или буфер 2) ... Похоже, это может быть проблема с отсутствующими кавычками ...

Сбой при извлеченииЗадача _Ref ".

Мне нужно получить эту строку из стандартного вывода в URL-адрес PUT: запись: host / ZG5zLmhvc3QkLm5vbl9ETlNfaG9zdF9yb290LjAuMTU3MTM0NTE2MTE2OS41Ny43oft_t2

1 Ответ

0 голосов
/ 23 октября 2019
I learned that the values weren't in stdout, and therefore the value needed couldn't be captured. Instead of api_response_raw.stdout, I used below api_response_raw.content, because the output in debug showed my values in a key:value format--the values being of the key called content.
    - name: Extract _Ref Object from API Response
set_fact:
  api_ref_object: "{{ api_response_raw.content | regex_search('record:host/(\w*):(.{1,})%20') }}" 
...