Nik
Anton
Nik
есть 20 файлов с описанием тестов. их POST запросом в веб сервис, он прокрутит их, и отдаст либо 200 и пустое тело, либо не 200 и текст ошибки в body
Nik
последовательно запускать их - оч долго, над паралельно
Ievgen
Ievgen
я так ансибл пускаю на несколько групп
Sergey
тебе нужно free
Sergey
заDDoS'ь свой сервис сам 😊
Alex
Отказался
Nik
Nik
или все таски на всех хостах?
Anton
Nik
И что за магию пытаются вообразить тут?
Nik
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_async.html
Anton
потребность есть же у многих
Nik
или я дурак, или я не вижу, где это ложится в то, что он не будет пытаться выполнять все таски на всех хостах
Sergey
Если у тебя какая-нибудь длинная операция, и тебе результат интересен в принципе, но нафиг не нужен прям вот ваще сейчас.
Nik
но сейчас попробую
Nik
Sergey
Anton
читатели реквестов
Nik
Nik
как то все не прямо
Sergey
Sergey
тебе нужно strategy: free
Sergey
Ну и это же опен-сорс, напиши сам нужное, тебе братья по пичальке в ноги поклонятся.
Nik
- name: запускаем тесты
hosts: 127.0.0.1
connection: local
tasks:
- uri:
url: http://10.16.144.58:6650/testSingle
method: POST
timeout: 1800
body: "{{ lookup('file',item) }}"
return_content: yes
async: 1800
poll: 0
register: async_results
with_lines:
- ls -lah interface-h2o/*.yaml | awk '{print $9}'
- name: Check sync status
async_status:
jid: "{{ async_result_item.ansible_job_id }}"
loop: "{{ async_results.results }}"
loop_control:
loop_var: "async_result_item"
register: async_poll_results
until: async_poll_results.finished
retries: 60
Alex
А кто тут админ? Может бота для антиспамеров запилит? Кто то советова @FilterAlienBot
Nik
работает прям как хотел
Sergey
ну смотри, тебе виднее
Nik
Nik
вопрос - а кто-нибудь пробовал управлять выводом таски? подрезать лишние поля, красиво выводить json-ы и так далее?
Nklya
Вот про красивый вывод
Nklya
Оказывается в Ansible 2.5 теперь можно включить вывод ошибок в красивом Yaml вместо простыни Json.
TL;DR Достаточно добавить в ansible.cfg stdout_callback = yaml
Подробнее в блоге Jeff Geerling https://goo.gl/u6b2TH
Denis
Nik
спасибо, ща буду пробовать
Nik
Nik
ok: [127.0.0.1] => (item={'_ansible_parsed': True, '_ansible_item_result': True, '_ansible_item_label': u'interface-h2o/fav.yaml', u'ansible_job_id': u'698204737441.22639', 'failed': False, u'started': 1, 'changed': True, 'item': u'interface-h2o/fav.yaml', u'finished': 0, u'results_file': u'/home/ngkazary/.ansible_async/698204737441.22639', '_ansible_ignore_errors': None, '_ansible_no_log': False})
Nik
я вот про item
Alex
Админчик, помоги
Nklya
Пора добавить терминатора))
Alex
Ага
Denis
СЛАВА ТЕРМИНАТОРУ!
Vlad
я вот про item
Можно использовать:
loop_control:
label: "{{ item.name }}"
для сокращения вывода всего item
Nik
Alex
Спасибо админ
Nik
а кто пользовался uri? Сервер отдает json с Content-Type: application/json. Почему ответ все равно уходит в content?
citius
Alex
Alex
Alex
Блин, это вроде для отправки запроса параметр. А для получения вот описание:
return_content:
description:
- Whether or not to return the body of the request as a "content" key in
the dictionary result. If the reported Content-type is
"application/json", then the JSON is additionally loaded into a key
called C(json) in the dictionary results.
choices: [ "yes", "no" ]
default: "no"
Nik
Nik
return_content: yes
Nik
стоит
Alex
должен быть no
Nik
приходит "application/json"
Nik
дефолт no, а я поставил yes
Nik
или я туплю?
Alex
Я ссылку на исходник дал, мне кажеться должно быть no. Я может сам туплю под вечер, глянь в исходник
Nik
if 'application/json' in content_type or 'text/json' in content_type:
Nik
https://github.com/ansible/ansible-modules-core/blob/00911a75ad6635834b6d28eef41f197b2f73c381/network/basics/uri.py#L468
Nik
вот тут скорее
Nik
кстати выключил return_content - ничего не изменилось
citius
у тебя в conten попадать должно в любом случае, но если нормально отрабатывает content_type, то также должно попасть и в json