Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Apstra ZTP Introduction

Overview

Apstra ZTP is a Zero-Touch-Provisioning server for data center infrastructure systems. From an Apstra perspective, it's a process that automatically takes a device from initial boot to a point where it's managed by Apstra. Apstra ZTP takes care of any underlying NOS requirements.

The ZTP process includes the following activities:

  1. Generic DHCP (if using DHCP)
    • The device requests an IP address via DHCP.
    • The device receives the assigned IP address and a pointer to the OS installation image.
  2. Initialize Device
    • Download the ZTP script, using TFTP.
    • Execute the downloaded script to prepare it to be managed. This includes verifying that the device is running a supported OS; if It's not, it upgrades or downgrades the version, as needed.
    • Set the device admin/root password.
    • Create a device user for the device system agent.
  3. Install Device System Agent
    • The ZTP script makes an API call to install a device system agent on the device for onbox agents, or on the Apstra server for offbox agents.

Apstra ZTP runs as an Ubuntu 22.04.3 LTS server running MySQL, DHCP, HTTP, and TFTP servers.

Apstra provides the Apstra ZTP VM image (.ova, .qcow2.gz, .vhdx.gz). You can use the Apstra-provided device provisioning scripts as part of the existing ZTP/DHCP process to automatically install agents on devices as part of the boot process.

The TFTP and nginx HTTP servers don't require configuration. Both servers serve files out of the /containers_data/tftp directory.

You'll need to configure the dhcp.conf file and the ztp.json files during ZTP setup. As of Apstra version 4.2.0, configuring these files is simplified with the new Apstra ZTP GUI.

Apstra ZTP provides a method for automating switch initialization and customization. A useful feature during switch initialization is the ability for our script to make custom configs in the switches prior to their use in a network.

Note: Use the Apstra ZTP version corresponding to the Juniper Apstra version you're using. This document applies to 4.2 versions.

Resource Requirements for Apstra ZTP Server

Table 1: Apstra ZTP Server VM Minimum Resource Requirements

Resource

Setting

Guest OS Type

Ubuntu 22.04.3 LTS 64-bit

Memory

2 GB

CPU

1 vCPU

Disk Storage

64 GB

Network

At least 1 network adapter, initially configured for DHCP

Table 2: Apstra ZTP Network Requirements

Source

Destination

Ports

Role

Device Agents

DHCP server (renewals) and Broadcast (requests)

udp/67 -> udp/68

DHCP Client

Device Agents

Apstra ZTP

any -> tcp/80 (http)

any -> tcp/443 (https)

Bootstrap and API scripts

Arista, Cisco, and Juniper Agents

Apstra ZTP

any -> udp/69

TFTP for POAP and ZTP

Apstra ZTP

Apstra server (controller)

any -> tcp/443 (https)

Device System Agent Installer API

User

Apstra server (controller)

any -> tcp/443 (https)

Apstra ZTP GUI interface

Apstra Server Required Communication Ports

The Apstra ZTP server and device agents also require connectivity to the Apstra server (controller). For more information, refer to Required Communication Ports in the Juniper Apstra Installation and Upgrade Guide.

Onboarding Devices with Apstra ZTP

Once Apstra ZTP is set up, you can quickly onboard devices. Make sure device configuration is set to factory default, then boot up your device. Apstra ZTP takes care of the rest up to the point where a device is ready to be acknowledged. When you acknowledge a device it's under Apstra management and you can assign it to any blueprint in your Apstra environment.

You can also check ZTP status of devices and services from the Apstra server GUI.