Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Apstra ZTP(设备)

Apstra ZTP 概述

注意:

本文档适用于 Apstra ZTP 4.0 版本。使用与您使用的瞻博网络 Apstra 版本对应的 Apstra ZTP 版本。早于 4.0 的 Apstra 版本使用 Apstra ZTP 版本 1.0.0 或 2.0.0。有关更多信息,请参阅瞻博网络 Apstra 3.3.0 用户指南。

Apstra ZTP 是适用于数据中心基础架构系统的全自动部署服务器。(Apstra ZTP 取代了社区支持的 Aeon-ZTPS 软件,该软件以前用于 Apstra 环境中的 ZTP 实施。)Apstra ZTP 使您能够在不考虑底层 NOS 机制差异的情况下启动 Apstra 数据中心设备。从 Apstra 的角度来看,ZTP 是一个将设备从初始启动带到由 Apstra 通过设备代理管理的点的过程。

根据 ZTP 的配置方式,此过程可能包括(但并非总是)以下功能:

  • DHCP 服务
  • 设置设备管理员/root 密码
  • 为设备系统代理创建设备用户
  • 升级/降级 NOS
  • 安装许可证(仅限库穆卢斯)
  • 本机或机下设备系统代理安装

另请参阅供应商特定的信息:

注意:

为了防止在 ZTP 过程中出现问题时被锁定在设备之外,ZTP 使用默认、硬编码的凭据。这些证书包括:

  • root / 管理员
  • aosadmin / aosadmin

您可以使用 Apstra 提供的 VM 映像(.ova.qcow2.gz.vhdx.gz) 或构建自己的 ZTP 服务器,并使用 Apstra 提供的设备调配脚本作为现有 ZTP/DHCP 进程的一部分,在启动过程中自动在设备上安装代理。Apstra ZTP 参考实施包括以下三个阶段:

  1. 通用 DHCP 相位
    • 设备通过 DHCP 请求 IP 地址。
    • 设备收到分配的 IP 地址和脚本执行的指针(或使用 Apstra 提供的 VM 映像时安装的 OS 映像)。
  2. 初始化阶段
    • 设备使用 TFTP 下载 ZTP 脚本。
    • 设备执行已下载的脚本,准备对其进行管理。这包括验证设备是否运行受支持的操作系统。
  3. I 代理安装阶段
    • ZTP 脚本发出 API 调用,以便在设备上安装设备系统代理。

Apstra ZTP 4.0 VM 服务器资源要求

Apstra ZTP 4.0 作为运行 DHCP、HTTP 和 TFTP 服务器的 Ubuntu 18.04 LTS 服务器运行,包括 Apstra 提供的必须为您的环境定制的 ZTP 脚本。下表显示生产环境的最低服务器规格:

资源 设置
访客操作系统类型 Ubuntu 18.04 LTS 64 位
记忆 2 GB
CPU 1 个 vCPU
磁盘存储 64 GB
网络 至少 1 个网络适配器。最初配置为 DHCP

Apstra ZTP 4.0 网络要求

目标 端口 角色
设备代理 DHCP 服务器(续订)和广播(请求) udp/67 -> udp/68 DHCP 客户端
设备代理 Apstra ZTP 任何 -> tcp/80 自举和 API 脚本
Arista 和 Cisco 设备代理 Apstra ZTP 任意 -> udp/69 用于 POAP 和 ZTP 的 TFTP
Apstra ZTP 控制器 任何 -> tcp/443 设备系统代理安装器 API

除了 ZTP 特定的网络要求外,Apstra ZTP 服务器和设备代理还需要与控制器的连接。有关详细信息,请参阅 必需的计算端口

从 Apstra ZTP 4.0.0 和 Apstra 4.0.0 开始,您可以从 Apstra GUI 监控设备 ZTP 状态。

从左侧导航菜单导航到 设备> ZTP Status > 设备

每个与 DHCP 和 ZTP 交互的设备均随之列出其系统 ID(序列号),如果已知,则为 ZTP Status、ZTP 最新事件以及设备状态上次更新时。

要查看设备的完整 DHCP 和 ZTP 日志,请单击“Show Log”图标。

列出了与 DHCP 或 ZTP 交互的任何设备。如果您不再需要设备的日志,请单击“删除”图标。

所有流程的日志文件均可在目录中 /containers_data/logs 找到

从 Apstra ZTP 4.0.0 和 Apstra 4.0.0 开始,您可以从 Apstra GUI 监控 Apstra ZTP 服务器上的 ZTP 服务。

从左侧导航菜单导航到 设备> ZTP Status >服务

每个服务名称都包含其 Docker IP 地址、服务状态以及最后更新服务状态时。

下载和部署 Apstra ZTP 虚拟机

Apstra ZTP 软件在独立 Apstra ZTP VM 上交付
  1. 作为注册支持用户,从 Juniper Support Downloads 下载相应的 Apstra VM 映像。
    VMware OVA 图片 apstra-ztp-4.0.*-<build-version>.ova(例如: apstra-ztp-4.0.1-11.ova
    Microsoft Hyper-V apstra-ztp-4.0.*-<build-version>.vhdx.gz(例如: apstra-ztp-4.0.1-11.vhdx.gz
    Linux KVM QCOW2 图像 apstra-ztp-4.0.*-<build-version>.qcow2.gz(例如: apstra-ztp-4.0.1-11.qcow2.gz
  2. 根据提供的 SHA512/MD5 校验和验证已下载的文件。
  3. 使用适当的资源部署虚拟机。
  4. TFTP、NGINX (HTTP)、DHCPd、Status 和 MySQL Docker 容器默认启用并运行。
  5. 如果您不想使用 Apstra ZTP DHCP 服务器,请停止并禁用 dhcpd 容器。

配置静态管理 IP 地址 (Apstra ZTP)

默认情况下,Apstra ZTP 服务器会尝试通过 DHCP 为其 eth0 接口分配 IP 地址。如果您将 Apstra ZTP 服务器用作 DHCP 服务器,则必须设置静态管理 IP 地址。

  1. 作为用户管理员将 SSH 集成到 Apstra 服务器中。(ssh admin@<apstra-server-ip>Astra 服务器的 IP 地址在哪里<apstra-server-ip>。)
  2. 编辑文件/etc/netplan/01-netcfg.yaml以配置静态管理 IP 地址。请参阅以下示例。(有关使用 netplan 的详细信息,请参阅 https://netplan.io/examples
  3. 使用以下其中一种方法应用更改:
    • 使用 命令重新启动 Apstra 服务器 sudo reboot
    • 运行 命令 sudo netplan apply

配置 ZTP 用户

您可以使用具有 API 写入访问权限(例如管理员)的任何配置的 Apstra GUI 用户,但是我们建议您创建一个指定的用户(例如,分配给预定义角色 device_ztp的“ztp”)。device_ztp角色允许具有该角色的用户向控制器拨打 API 电话,要求安装设备系统代理。有关更多信息,请参阅 用户/角色管理

配置 DHCP 服务器

Apstra 软件附带用于设备管理网络的 ISC DHCP 服务器。如果您使用不同的 DHCP 服务器,您有责任为 Apstra 提供的 DHCP 服务器配置与本指南中所述相同的选项。例如,如果您使用瞻博网络设备,则必须确保服务器包含以下内容,以便设备下载 Apstra ZTP junos_apstra_ztp_bootstrap.sh 文件。

DHCP 配置文件位于目录中的 /containers_data/dhcp Apstra ZTP VM 上。

注意:

所有配置文件均归 root. .您必须使用 sudo 来运行命令,即root使用 sudo 命令或与命令一起sudo -s使用root后。

  1. dhcpd.conf使用 vi 或纳米文本编辑器编辑文件。
  2. 添加对应于管理网络的“组”:
    tftp-server-name ZTP 服务器的 IP 地址(非 URL)
    subnet IP 管理网络和网络交换
    range 动态 DHCP IP 地址范围。确保全系列可用,并且不使用来自该范围的静态配置 IP 地址。
    option routers 用于管理网络的默认网关路由器
    host 静态 DHCP IP 地址
    hardware ethernet 用于 DHCP 协商的管理接口
    fixed-address 用于具有硬件以太网 MAC 的设备。使用交换机 MAC 地址
  3. 以下 DHCP 参数可选:
  4. 如果您使用 ZTP 与 Cumulus Linux,则必须编辑以下内容:
    • cumulus-provision-url:带 ZTP 服务器 IP 地址的 TFTP URL
  5. 如果您在 SONiC 中使用 ZTP,则必须编辑以下内容:
    sonic-provision-url:带 ZTP 服务器 IP 地址的 TFTP URL
  6. 修改任何 DHCP 配置后,使用 命令重新启动 Apstra ZTP DHCP 进程sudo docker restart dhcpd

为 ZTP 配置控制器 IP 地址

控制器 IP 和 Apstra ZTP 用户名必须在 Apstra ZTP 4.0 服务器上的文件中 /containers_data/status/app/aos.conf 配置。

ip 控制器的 IP 地址
user ZTP 或管理员用户名
password 用户密码

编辑 Apstra ZTP 配置文件

Apstra ZTP VM 包括 TFTP 和 nginx HTTP 服务器。这些服务器不需要配置。两台服务器都提供目录外 /containers_data/tftp 的文件。

ztp.json 文件包含 Apstra ZTP 脚本 ztp.py的所有配置。

  1. ztp.json使用 vi 或纳米文本编辑器编辑文件。
  2. ztp.json 文件由以下组织:
    默认值 - 除非定义更具体的密钥,否则所有设备均使用值。
    "defaults": {
      "device-root-password": "root-password-123",
      "device-user": "admin",
      "device-user-password": "admin-password-123",
      "system-agent-params": {
        "agent_type": "onbox",
        "install_requirements": false
      }
    }
    平台 - 除非定义更具体的密钥,否则网络平台的所有设备均使用值(“cumulus”、“nxos”、“eos”、“junos”、“sonic”)。
    "cumulus": {
      "cumulus-versions": ["3.7.13"],
      "cumulus-image": "http://192.168.59.4/cumulus-linux-3.7.13-bcm-amd64.bin",
      "license": "cumulus_license_file",
      "custom-config": "cumulus_custom.sh",
    }
    型号 - 值用于特定设备型号的所有设备(例如“N9K-C93180YC-FX”)。
    "N9K-C93180YC-FXC3396": {
      "custom-config": "93180_cumulus_custom.sh",
    }
    序列号 - 值用于与特定设备序列号匹配的设备(例如“525400B3C311”)。
    "525400B3C311": {
      "cumulus-versions": [ "3.7.13" ],
      "cumulus-image": "http://192.168.59.4/cumulus-linux-3.7.13-bcm-amd64.bin"
    }

    更具体的数据优先于其他数据。例如,特定序列号的数据优先于任何其他数据,然后是模型,然后是平台,最后是默认数据。

  3. ztp.json 文件使用以下密钥:
    junos-versions - 瞻博网络 Junos 设备的有效版本。如果设备未在此列表中运行版本,ZTP 将使用 junos-image 映像升级设备。 "junos-versions": [ "20.2R2-S3.5" ]
    junos-image - 如果运行版本与列表中的 junos-versions 版本不匹配,则要加载瞻博网络 Junos TGZ 映像的文件名。
    • 默认情况下,图像名称通过 TFTP 从 ZTP 服务器目录 /container_data/tftp/ 中通过 TFTP 从 ZTP 服务器加载。例如: "junos-image": "jinstall-host-qfx-5-20.2R2-S3.5-signed.tgz"
    • 要使用任何 HTTP 服务器进行映像传输,请输入具有 IP 地址的有效 HTTP URL。例如: "junos-image": "http://192.168.59.4/jinstall-host-qfx-5-20.2R2-S3.5-signed.tgz"

    此应用程序使用控制器中的 HTTP 传输瞻博网络 Junos 映像。

    sonic-versions- SONiC 设备的有效版本。如果设备未在此列表中运行版本,ZTP 将使用 sonic-image 映像升级设备。 "sonic-versions": [ "SONiC-OS-3.1.0a-Enterprise_Base" ]
    sonic-image - 如果运行版本与列表中的 sonic-versions 版本不匹配,则要加载 SONiC ONIE BIN 映像的文件名。
    • 默认情况下,图像名称通过 TFTP 从 ZTP 服务器目录 /container_data/tftp/ 中通过 TFTP 从 ZTP 服务器加载。例如: "sonic-image": "sonic-3.1.0a-bcm.bin"
    • 要使用任何 HTTP 服务器进行映像传输,请输入具有 IP 地址的有效 HTTP URL。例如: "sonic-image": "http://192.168.59.3/sonic-3.1.0a-bcm.bin"

    此示例使用控制器中的 HTTP 传输 SONiC 映像。

    nxos-versions - NX-OS 设备的有效版本。如果设备未在此列表中运行版本,ZTP 将使用 nxos-image 映像升级设备。 "nxos-versions": [ "9.2(2)", "9.3(6)" ]
    nxos-image - 如果运行版本与列表中的版本不匹配,则要加载的 nxos-versions NX-OS 映像文件名。
    • 默认情况下,图像名称通过 TFTP 从 ZTP 服务器目录 /container_data/tftp/ 中通过 TFTP 从 ZTP 服务器加载。例如: "nxos-image": "nxos.9.3.6.bin"
    • 要使用任何 HTTP 服务器进行映像传输,请输入具有 IP 地址的有效 HTTP URL。例如: "nxos-image": "http://192.168.59.4/nxos.9.3.6.bin"

    此示例使用 ZTP 服务器中的 HTTP 传输 Cisco NX-OS 映像。

    eos-versions - Arista EOS 设备的有效版本。如果设备未在此列表中运行版本,ZTP 将使用 eos-image 映像升级设备。 "eos-versions": [ "4.22.3M", "4.24.5M" ]
    eos-image - 如果运行版本与列表中的 eos-versions 版本不匹配,则要加载的 Arista EOS SWI 映像文件名。
    • 默认情况下,图像名称通过 TFTP 从 ZTP 服务器目录 /container_data/tftp/ 中通过 TFTP 从 ZTP 服务器加载。例如: "eos-image": "EOS-4.24.5M.swi"

    • 要使用任何 HTTP 服务器进行映像传输,请输入具有 IP 地址的有效 HTTP URL。例如: "eos-image": "http://192.168.59.3/dos_images/EOS-4.24.5M.swi"

    此示例使用控制器中的 HTTP 传输 Arista EOS 映像。

    cumulus-versions - Cumulus Linux 设备的有效版本。如果设备未在此列表中运行版本,ZTP 将使用 cumulus-image 映像升级设备。 "cumulus-versions": [ "3.7.12", "3.7.13" ]
    cumulus-image - 如果运行版本与列表中的 cumulus-versions 版本不匹配,则要加载 Cumulus Linux ONIE BIN 图像的文件名。
    • 默认情况下,图像名称通过 TFTP 从 ZTP 服务器目录 /container_data/tftp/ 中通过 TFTP 从 ZTP 服务器加载。例如: "cumulus-image": "cumulus-linux-3.7.13-bcm-amd64.bin"
    • 要使用任何 HTTP 服务器进行映像传输,请输入具有 IP 地址的有效 HTTP URL。例如: "cumulus-image": "http://192.168.59.4/cumulus-linux-3.7.13-bcm-amd64.bin"

    此示例使用 ZTP 服务器中的 HTTP 传输 Cumulus Linux 映像。

    device-root-password - ZTP 进程将设备 root 密码设置为此值。对于 Arista EOS 和 Cisco NX-OS 设备, device-root-password 用于为系统 admin 密码设置密码。 "device-root-password": "root-admin-password"
    device-user / device-user-password - 用于设备系统代理的用户名和密码。此外,如有必要,ZTP 进程会使用此用户名和密码在设备上创建用户。
    "device-user": "aosadmin",
    "device-user-password": "aosadmin-password"
    license - TFTP 目录中的 Cumulus Linux 许可证文件的文件名或指向 HTTP 服务器上文件的 URL 文件名。 "license": "cumulus_license_file"
    custom-config - TFTP 目录中自定义配置 shell 脚本的文件名或指向 HTTP 服务器上文件的 URL 文件名。此 shell 脚本在 ZTP 期间运行,允许您向设备添加自定义配置。有关详细信息,请参阅下面的平台特定信息部分。 "custom-config": "cumulus_custom.sh"
    system-agent-params 用于在设备上创建新用户和设备系统代理的信息,如下所述。
    agent_type - 代理类型、收件箱或异盒 "agent_type": "onbox"
    install_requirements - 始终设置为错误。当前不需要任何受支持的网络操作系统。 "install_requirements": false
    job_on_create - 设置为在 install 设备上安装代理。

    "job_on_create": "install"

    Junos 示例

    {
            "junos": {
                    "junos-versions": ["21.2R1-S2.2"],
                    "junos-image": "http://10.85.24.52/juniper/21.2R1-S2.2/jinstall-host-qfx-5e-x86-64-21.2R1-S2.2-secure-signed.tgz",
                    "device-root-password": "root123",
                    "device-user": "admin",
                    "device-user-password": "admin",
                    "system-agent-params": {
                            "platform": "junos",
                            "agent_type": "offbox",
                            "job_on_create": "install"
                    }
            },
            "QFX10002-36Q": {
                   "junos-versions": ["21.2R1-S2.2"],
                    "junos-image": "http://10.85.24.52/juniper/21.2R1-S2.2/jinstall-host-qfx-10-f-x86-64-21.2R1-S2.2-secure-signed.tgz"
            },
            "JNP10002-60C [QFX10002-60C]": {
                    "junos-versions": ["21.2R1-S1.3"],
                    "junos-image": "http://10.85.24.52/juniper/21.2R1-S1.3/junos-vmhost-install-qfx-x86-64-21.2R1-S1.3.tgz"
            }
    }
    platform - (仅适用于机下代理)设置到设备平台(“eos”、“nxos”、“junos”)。必须处于所有小写中。 "platform": "junos"
    open_options -(仅限机下代理)设置,用于在机下代理之间启用 HTTPS 到设备 API 接口。如果未定义open_options,则连接默认为 HTTP。
    "open_options": {
      "proto": "https",
      "port": "443"
    }
    packages - 设置为配置哪些附加 SDK 或扩展遥测包以上传至系统代理。
    "packages": [
      "aos-deployment-helper-nxos",
      "aosstdcollectors-builtin-nxos",
      "aosstdcollectors-custom-nxos"
    ]

有关中所有可用 system-agent-params 选项的 /api/system-agentsREST API 文档,请参阅 Swagger。