junipernetworks.junos.junos_scp 模块 – 从运行 Junos 的远程设备传输文件或向其传输文件

注意

此模块是 junipernetworks.junos 集合(版本 9.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install junipernetworks.junos。您需要进一步的要求才能使用此模块,有关详细信息,请参阅 要求

要在剧本中使用它,请指定:junipernetworks.junos.junos_scp

junipernetworks.junos 1.0.0 中的新增功能

已弃用

在以下版本中移除:

2025-01-01 之后的重大版本

原因:

更新的模块发布了更多功能

替代方案:

请改用 ansible.netcommon.net_getansible.netcommon.net_put

概要

  • 此模块通过 SCP 从运行 Junos 的远程设备传输文件或向其传输文件。

要求

在执行此模块的主机上需要以下要求。

  • junos-eznc

  • ncclient (>=v0.5.2)

参数

参数

注释

dest

路径

dest 参数指定接收文件的路径。

默认值: "."

provider

字典

已弃用

从 Ansible 2.5 开始,我们建议使用 connection: network_cliconnection: netconf

有关更多信息,请参阅 Junos OS 平台选项指南

<hr>

一个包含连接详细信息的 dict 对象。

host

字符串

指定 DNS 主机名或地址,用于通过指定的传输连接到远程设备。主机的值用作传输的目标地址。

password

字符串

指定用于验证与远程设备连接的密码。此值用于验证 SSH 会话。如果任务中未指定该值,则将改为使用环境变量 ANSIBLE_NET_PASSWORD 的值。

port

整数

指定在构建与远程设备的连接时要使用的端口。端口值将默认为众所周知的 SSH 端口 22(对于 transport=cli)或端口 830(对于 transport=netconf)设备。

ssh_keyfile

路径

指定用于验证与远程设备连接的 SSH 密钥。此值是用于验证 SSH 会话的密钥的路径。如果任务中未指定该值,则将改为使用环境变量 ANSIBLE_NET_SSH_KEYFILE 的值。

timeout

整数

指定与网络设备通信(用于连接或发送命令)的超时时间(以秒为单位)。如果在操作完成之前超时,则模块将出错。

transport

字符串

配置连接到远程设备时要使用的传输连接。

选择

  • "cli"

  • "netconf" ←(默认)

username

字符串

配置用于验证与远程设备连接的用户名。此值用于验证 SSH 会话。如果任务中未指定该值,则将改为使用环境变量 ANSIBLE_NET_USERNAME 的值。

recursive

布尔值

recursive 参数启用文件和目录的递归传输。

选择

  • false ←(默认)

  • true

remote_src

布尔值

remote_src 参数启用从远程设备下载文件 (scp get)。默认行为是上传文件 (scp put) 到远程设备。

选择

  • false ←(默认)

  • true

src

列表 / elements=path / 必需

src 参数采用单个路径或要传输的路径列表。参数 recursive 必须为 true 才能传输目录。

ssh_config

路径

ssh_config 参数是 SSH 配置文件的路径。这可用于从配置文件加载 SSH 信息。如果默认情况下未给出此选项,则会查询 ~/.ssh/config。

ssh_private_key_file

路径

ssh_private_key_file 参数是 SSH 私钥文件的路径。如果您需要提供私钥而不是将密钥加载到 ssh 密钥环/环境中,可以使用此参数

注意

注意

  • 此模块要求在被管理的远程设备上启用 netconf 系统服务。

  • 针对 vMX JUNOS 版本 17.3R1.10 进行了测试。

  • 仅适用于 local 连接。

  • 由于此模块使用 junos-eznc 与 junos 设备建立连接,因此需要使用模块选项(例如 ssh_config)传递 netconf 配置参数,这与其他使用 netconf 连接类型的 junos 模块不同。

  • 有关使用 CLI 和 netconf 的信息,请参阅 :ref:`Junos OS 平台选项指南 <junos_platform_options>`

  • 有关使用 Ansible 管理网络设备的更多信息,请参阅 :ref:`Ansible 网络指南 <network_guide>`

  • 有关使用 Ansible 管理 Juniper 网络设备的更多信息,请参阅 https://ansible.org.cn/ansible-juniper

示例

# the required set of connection arguments have been purposely left off
# the examples for brevity
- name: upload local file to home directory on remote device
  junipernetworks.junos.junos_scp:
    src: test.tgz

- name: upload local file to tmp directory on remote device
  junipernetworks.junos.junos_scp:
    src: test.tgz
    dest: /tmp/

- name: download file from remote device
  junipernetworks.junos.junos_scp:
    src: test.tgz
    remote_src: true

- name: ssh config file path for jumphost config
  junipernetworks.junos.junos_scp:
    src: test.tgz
    remote_src: true
    ssh_config: /home/user/customsshconfig

返回值

常见的返回值已在此处记录,以下是此模块特有的字段

描述

changed

布尔值

始终为真

返回: 总是

状态

  • 此模块将在 2025-01-01 之后的重大版本中移除。[已弃用]

  • 有关更多信息,请参阅 已弃用

作者

  • Christian Giese (@GIC-de)