What is Apstra ZTP
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:
- 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.
- 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.
- 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. You can use the Apstra ZTP GUI, and, as
of Apstra version 5.0.0, you can also use AZTP REST API to configure
these files, among other tasks.
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.
Resource Requirements for Apstra ZTP Server
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 |
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.
Installing and Setting up Apstra ZTP
Follow the links below for detailed Apstra ZTP installation and configuration instructions.
Download and deploy the Apstra ZTP server VM.
Note:The VM image for Apstra ZTP is a separate VM image from the Apstra server VM image.
Configure the static management IP address for the Apstra ZTP server.
Configure Apstra Server Details for communicating with Apstra ZTP.
Create vendor-specific custom configuration, as needed.
- Configure the DHCP server for Apstra ZTP.
Configure ztp.json for Apstra ZTP. See the ztp.json Keys page for key details.
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.