对同一主机的同一任务的多个同时请求给出“数据无法发送到远程主机 IP。确保可以通过 ssh 访问该主机

Multiple simultaneous requests to same host for same task give "Data could not be sent to remote host IP. Make sure this host can be reached over ssh

场景

我运行以下任务同时在两个终端

所以我们在 运行同时为多个会话设置 ansible-playbook 时出现上述错误

Data could not be sent to remote host [internal ip]. Make sure this host can be reached over ssh

失败的任务正在执行的代码是

- name: run docker container
  docker_container:
    name: "{{ container_name }}"
    image: "organization/{{ app_name }}:{{ docker_image_version }}"
#    command: "{{ adhoc_command }}"
    command: "/bin/sh /data/run-command.sh"
    state: started
    recreate: yes
    capabilities:
      - sys_time
    cap_drop:
      - all
    privileged: true
    cleanup: true
    detach: false
    network_mode: host
    env_file: "{{ adhock_data_path }}/{{ app_name }}/{{ md5suffix }}/.env"
    volumes:
      - "{{ adhock_data_path }}/{{ app_name }}/{{ md5suffix }}:/data:rw"

我怀疑这是因为我们试图同时在容器中执行一些繁重的任务。
我在想是否有一些解决方案可以延迟连接以及类似以下内容

  wait_for_connection:
    delay: 30
    timeout: 300

但是当两个任务同时执行时,我们遇到了同样的问题。任何帮助将不胜感激。

如果需要,我也可以提供更多信息。

尝试使用值 retries = 5 更新您的 ansible.cfg,这将允许您的 playbook 重试连接到主机 5 次,重试延迟为 1 秒、2 秒、4 秒等。这将更您的 ansible.cfg 文件本身的说明。检查一次。