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

问题描述 投票:0回答:1

错误地将'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的解决方案,甚至像我上面所没有的解决方法吗?

python ansible mfa ansible-api
1个回答
0
投票

我通过使用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))

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.