
Nik
23.07.2018
16:36:52
TASK [Gathering Facts] *****************************************************************************************************************************************************************************************
ok: [127.0.0.1]
Сколько хостов тут пишет?

Anton
23.07.2018
16:37:16
в пределах таска 20 хостов
но выполняются они поочереди

Google

Anton
23.07.2018
16:37:34
выводит 20
но не соазу

Nik
23.07.2018
16:37:52
хз
надо плейбуки смотреть
мб у тебя там так настроено
потом ради интереса у себя дамп сниму
но дефолтная его паралельность - такая какая есть
больше никак не наконфигурить
(в рамках хостов)

Anton
23.07.2018
16:38:52
ниче в плейбуках кроме сериала нету
остальное все для конкретного хоста

Sergey
23.07.2018
16:39:13
forks = сколько одновременно хостов обрабатывается
к сетевым железкам это не относится

Google

Anton
23.07.2018
16:39:38
а это куда печатать? в саму команду?
а у них как тада?

Sergey
23.07.2018
16:39:56
у тебя сетевые железки?

Anton
23.07.2018
16:40:03
да

Sergey
23.07.2018
16:40:13
вот тебе и ответ
ансибл не для этого случая - покупай софт от вендоров ?

Anton
23.07.2018
16:40:33
ответ в том что мне ни как не помочь?

Sergey
23.07.2018
16:41:16
модули для весёлых сетевых железок в большинстве своём вендорами не поддерживаются, поэтому написаны через задницу: у них connection_type = local
а локал форкам не поддаётся

Anton
23.07.2018
16:41:46
а, ну ясно
спасибо

Sergey
23.07.2018
16:42:05
всегда пожалуйста

Nik
23.07.2018
16:42:07
Sergey пока ты тут - подскажи плиз как запарлелить таск?

Anton
23.07.2018
16:42:28
вендоры тоже не умеют эту штуку делать нормально, слишком кастомная
придется ждать

Sergey
23.07.2018
16:42:51

Nik
23.07.2018
16:43:08
задача простая - послать одновременно 20 http запросов с разным body

Google

Sergey
23.07.2018
16:44:27

Alex
23.07.2018
16:44:37
bashcode
for i in $(ansible-inventory); do
ansible-playbook -l $i playbook.yml &
done

Sergey
23.07.2018
16:44:55
Однако средства для реально упоротой синхронизации искаропки в ансибле нет.

Nik
23.07.2018
16:45:09
делать loop на роль, в роль прокинуть переменную
а потом loop можно делать async судя по роли
но у меня даже переменная не прокидывается

Sergey
23.07.2018
16:45:58
придется ждать
Напиши свой нормальный connection_plugin. Вендорам срать - они поголовно продают свой софт с мышкой под винду ?

Nik
23.07.2018
16:46:22

Sergey
23.07.2018
16:47:13

Anton
23.07.2018
16:47:38

Nik
23.07.2018
16:48:06
есть 20 файлов с описанием тестов. их POST запросом в веб сервис, он прокрутит их, и отдаст либо 200 и пустое тело, либо не 200 и текст ошибки в body

Nik
23.07.2018
16:48:19
последовательно запускать их - оч долго, над паралельно

Sergey
23.07.2018
16:49:26

Ievgen
23.07.2018
16:49:42
я так ансибл пускаю на несколько групп

Sergey
23.07.2018
16:50:28
тебе нужно free
заDDoS'ь свой сервис сам ?

Alex
23.07.2018
16:51:14

Google

Alex
23.07.2018
16:51:20
Отказался

Nik
23.07.2018
16:55:06
или все таски на всех хостах?

Anton
23.07.2018
16:55:27

Nik
23.07.2018
16:55:31
И что за магию пытаются вообразить тут?
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_async.html

Anton
23.07.2018
16:55:53
потребность есть же у многих

Admin
ERROR: S client not available

Sergey
23.07.2018
16:56:05

Nik
23.07.2018
16:57:12
или я дурак, или я не вижу, где это ложится в то, что он не будет пытаться выполнять все таски на всех хостах

Sergey
23.07.2018
16:57:15
Если у тебя какая-нибудь длинная операция, и тебе результат интересен в принципе, но нафиг не нужен прям вот ваще сейчас.

Nik
23.07.2018
16:57:18
но сейчас попробую

Sergey
23.07.2018
16:58:01

Anton
23.07.2018
16:59:32
читатели реквестов

Sergey
23.07.2018
17:01:28

Nik
23.07.2018
17:02:28
как то все не прямо

Google

Sergey
23.07.2018
17:03:00
тебе нужно strategy: free

Anton
23.07.2018
17:03:42

Sergey
23.07.2018
17:05:22
Ну и это же опен-сорс, напиши сам нужное, тебе братья по пичальке в ноги поклонятся.


Nik
23.07.2018
17:07:22
- 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
23.07.2018
17:07:29
А кто тут админ? Может бота для антиспамеров запилит? Кто то советова @FilterAlienBot

Nik
23.07.2018
17:07:38
работает прям как хотел

Sergey
23.07.2018
17:09:36
ну смотри, тебе виднее

Nik
23.07.2018
17:09:59

Ievgen
23.07.2018
18:10:52

Nik
23.07.2018
18:13:53
вопрос - а кто-нибудь пробовал управлять выводом таски? подрезать лишние поля, красиво выводить json-ы и так далее?

Nklya
23.07.2018
18:36:56
Вот про красивый вывод
Оказывается в Ansible 2.5 теперь можно включить вывод ошибок в красивом Yaml вместо простыни Json.
TL;DR Достаточно добавить в ansible.cfg stdout_callback = yaml
Подробнее в блоге Jeff Geerling https://goo.gl/u6b2TH

Banschikov
23.07.2018
18:43:44

Vlad
23.07.2018
18:52:02

Nik
23.07.2018
18:54:57
спасибо, ща буду пробовать