问题可能出现在 Windows 主机上对 winrm 会话的限制。尝试调整以下 winrm 设置:
打开 regedit.exe,找到以下位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client
找到 "IdleTimeout" 项,修改其数值数据为 "0",使得会话不再自动断开。
IdleTimeout = 0
还需要确保在 playbook 中通过设置 winrm_timeout 来覆盖默认的 winrm 连接超时值。例如:
- name: some task
ansible.windows.win_command:
cmd: some command
register: result
winrm_timeout: 1800
这样设置之后,长时间运行的 playbook 作业在 Windows 主机上应该能够正常工作。