【问题标题】:Ansible - Running the SCP command on remote host hangsAnsible - 在远程主机上运行 SCP 命令挂起
【发布时间】:2019-12-31 04:16:47
【问题描述】:

所以,场景是: 我有一台迷你计算机(运行 Ubuntu 服务器 18.04),可以使用 SSH 从我的本地计算机访问。 连接到微型计算机的是一个传感器设备,它通过 USB 连接,但使用带有 root@x.x.x.x(无密码)的 SSH 从微型计算机访问,并且运行的是精简版的 Linux。

我需要将配置文件复制到设备上,(并且能够使用 SCP 从小型计算机成功执行此操作),但希望能够使用 Ansible 从我的本地计算机执行此操作,因为将有数百个这些要设置,每个都有不同的配置。

Ansible 角色如下所示:

- name: "Copy config file to mini PC"
  template:
    src: config.json.j2
    dest: "{{ pc_config_path}}"

- name: "Copy config file from mini PC to sensor
  command: "scp {{ pc_config_path}} root@{{ device_ip_addr }}:{{ device_config_path }}"
  become: yes

第一个任务执行成功,但第二个任务挂起。

我尝试过 shell 和 raw,甚至创建了一个 bash 脚本并运行它但没有成功。

不确定这是否是安全限制,但希望找到解决方案。所以任何想法都会有所帮助。

谢谢。

【问题讨论】:

  • 尝试 synchronize 模块将本地复制到远程它也使用安全复制
  • @ArbabNazar,我认为您误读了我的问题,问题不是从我的本地复制到远程 - 工作正常。问题是从遥控器(例如 Raspberry Pi)复制到连接到它的另一个设备(例如传感器)。

标签: ansible


【解决方案1】:

发现 scp 命令正在等待响应以将设备添加到 known_hosts 列表中

将任务更新为

- name: "Copy gnd.json from PC to v2x unit"
  command: "scp -oStrictHostKeyChecking=no {{ pc_config_path }} root@{{ device_ip_addr }}:{{ device_config_path }}"

一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多