首页 文章

在Ansible中增加SSH命令的超时

提问于
浏览
6

我目前正在使用Ansible使用IPv6链接本地地址来提供裸机 . 一旦配置了服务器,ansible将在服务器上运行一系列测试,作为一个shell命令,以确保配置成功 . 这些测试大约需要10分钟才能运行 .

我面临的问题是在命令完成之前连接似乎超时 .

以下是Ansible的错误:

fatal: [fe80::5054:ff:XXXX:XXXX%eth0]: UNREACHABLE! => {
  "changed": false, 
  "msg": "Failed to connect to the host via ssh: Shared connection to fe80::5054:ff:XXXX:XXXX%eth0 closed.\r\n",
  "unreachable": true
}

通过查看此错误,可能会认为SSH连接存在问题 . SSH连接本身很好,因为在此任务之前,其他几个任务在同一主机上成功运行 .

如何增加超时,以便Ansible等待命令完成?可以在Ansible配置中增加此超时,还是需要修改命令本身以增加超时?

2 回答

  • 0

    您将要异步运行任务 . 高级步骤将是:

    • 发送部署请求

    • 为所述请求获取某种实例或请求ID

    • 轮询请求结果

    • 继续剧本

    这是来自official docs的这种行为的一个例子

    - name: 'YUM - fire and forget task'
      yum:
        name: docker-io
        state: installed
      async: 1000
      poll: 0
      register: yum_sleeper
    
    - name: 'YUM - check on fire and forget task'
      async_status:
        jid: "{{ yum_sleeper.ansible_job_id }}"
      register: job_result
      until: job_result.finished
      retries: 30
    
  • 7

    我几乎有类似的问题,-vvv没有给我太多信息 . 但检查guest虚拟机中的syslog会显示我在运行ansible脚本时内存不足 . 如果您在运行ansible脚本时可以看到syslog条目以查看guest虚拟机中是否存在任何问题,那将是一件好事 .

相关问题