Мы используем модуль uri для запроса данных Graylog API в формате json.
- name: Get data
uri:
url: http://graylog-host:9000/api/system
url_username: username
url_password: password
force_basic_auth: yes
return_content: yes
method: GET
body_format: json
validate_certs: false
register: node_id_output
К сожалению, с этой задачей мы получаем следующую ошибку:
fatal: [hostname]: FAILED! => {"changed": false, "connection": "close", "content": "", "content_length": "0", "date": "Wed, 02 Sep 2020 07:21:25 GMT", "elapsed": 0, "msg": "Status code was 400 and not [200]: HTTP Error 400: Bad Request", "redirected": false, "status": 400, "url": "http://graylog-host:9000/api/system"}
Хотя следующая команда Curl работает нормально и возвращает допустимое содержимое JSON с кодом состояния 200:
curl -u username:password -H "Accept: application/json" http://graylog-host:9000/api/system
Что могло бы быть причиной ошибки? В качестве альтернативы мы можем использовать body_format: form-urlencoded, который не возвращает 400, но, к сожалению, содержимое не может быть проанализировано фильтром json_query.
body_format
и добавитеheaders: {Accept: application/json}
? - person zigarn   schedule 02.09.2020Content-Length: 4
иContent-Type: application/json
с теломnull
, если вы измените URL-адрес на requestbin.net или аналогичный; посколькуGET
с телом очень странно, graylog отправляет обратно 400 - person mdaniel   schedule 02.09.2020