如何为 MFA 用户设置 Ansible API tqm.run() 超时?

How to set an Ansible API tqm.run() timeout for MFA Users?

当 'ansible_user' 被错误地设置为 MFA 用户时,tqm 无限期挂起。
我在这里 'task_queue_manager.py' 设置了一个断点:

play_return = strategy.run(iterator, play_context)

但我找不到任何可用于停止、结束或出错的程序。
下面是 sudo 代码,代表对它如何工作的猜测。

timeout = 300
result = tqm.run(play)
if not result and timeout and tqm is not None:
    tqm.cleanup()

有没有人知道直接使用 tqm 的解决方案,或者甚至是像我上面没有提到的解决方法?

我通过使用 func_timeout 库找到了解决这个问题的方法。将 tqm.run 包装在一个 try 块中并将其发送到超时 fcn 对我有用。

try: exitstatus = func_timeout(self.tqm_timeout, tqm.run, args=(play,)) except FunctionTimedOut: msg = "tqm.run could not complete within {} seconds and was terminated.".format(self.tqm_timeout) raise Exception(msg) except Exception as e: raise Exception('exception in tqm was {}'.format(e))