测试时,Ansible同步模块卡住



目标:我正在尝试复制/home/foo/certificates/*/{fullchain.cer,*.key}从一台服务器(tower.example.com(到其他节点。

使用verbose选项尝试任务时,它会卡住。可以在此处找到输出日志(Ansible 2.5(:https://gist.github.com/tristanbes/1be96509d4853d4853d647a49d30259672779

- hosts: staging:web:tower:!tower.example.com
  gather_facts: yes
  become: yes
  become_user: foo
  tasks:
    - name: synchronize the certificates folder
      synchronize:
        src: "/home/foo/certificates/"
        dest: "{{ certificates_path }}/"
        rsync_opts:
          - "--include=fullchain.cer"
          - "--include=*.key"
      delegate_to: tower.example.com

我正在Localhost上运行本剧本。除此之外,我除此之外是在tower.example.com上的foo连接,然后将其与SSH作为foo连接到组webstaging的服务器,以rsync按下匹配过滤器的文件夹的内容。

  • 我可以在tower.example.com上运行其他剧本
  • 我可以在tower.example.com上与用户连接,然后将sudo -i && su foo连接到foo。
  • 作为foo,我可以连接到其他主机,作为组下的服务器和登台。

我缺少什么?

看来tower.example.com可能无法访问其他主机。当SSH正在等待密码时,这可能会导致卡住。您可以通过

解决此问题
  • tower.example.com上生成新的SSH键并在其他主机上授权它,/或
  • 设置SSH-Agent转发。

另外,您可以将证书获取到localhost上的临时文件夹,然后将其复制到其他主机。这避免了使用delegate_to,但不如直接在远程主机之间同步文件的效率。

最新更新