Ansible WinRM Превышено максимальное количество одновременных операций для этого пользователя - PullRequest
0 голосов
/ 01 мая 2020

Мы используем Ansible playbooks для автоматизации долгосрочных сценариев на многих системах в нашей сети. Некоторые из этих систем Windows 10, а другие Windows 7. Долгосрочные операции запускаются с использованием * 1001 Механизм * asyn c и модуль ansible async_status используются для опроса результатов задач каждые 30 секунд.

- name: Long running operation
    win_command:
      cmd: cmd
      _raw_params: python long_running_script.py
    async: 2140000
    poll: 0
    register: async_sleeper
  - name: Status poll
    async_status: jid="{{ async_sleeper.ansible_job_id }}"
    register: job_result
    until: job_result.finished
    retries: 100001
    delay: 30

Сервер windows 10 имеет следующую конфигурацию по умолчанию для WinRM:

MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500

Каждые ~ 12,5 часов или около того, Playbook выдает ошибки с "максимальным количеством одновременных операций для этого пользователя было превышено ", и это точно соответствует 1500/30 (наш интервал опроса). Но очевидно, что async_status не является параллельной операцией. Предполагается, что это недолгая проверка того, что процесс все еще работает и должен завершиться после. Таким образом, в любой заданный момент число одновременных процессов не должно превышать 2. Диспетчер задач на клиентском компьютере не показывает каких-либо длительных процессов. Так что же происходит? Относится ли ConcurrentOperation к количеству операций, а не к параллелизму? Мы знаем, что можем увеличить квоту , но мы не хотим этого делать в производственных системах, не доходя до root этой проблемы.

Было бы полезно знать:

  1. Что на самом деле означает параллельная операция?
  2. Какова наилучшая отраслевая практика для решения этой проблемы?
  3. Что изменилось в Windows 10, когда эта ошибка не обнаружена в другой версии ОС?
...