Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?


Apstra ZTP - Juniper Junos

EX switches require Junos OS version 21.2 or higher. The Python module that's required for ztp is missing on EX switches using Junos OS versions below 21.2

Juniper Junos and ZTP Disk Space

Apstra ZTP manages the bootstrap and lifecycle of Juniper Junos devices. It uses a custom script to create offbox agents, create local users and set other system configuration. As part of the ZTP process a new OS image is copied to the switch. Before installing Apstra ZTP ensure that the switch has sufficient disk space for the OS image.

Example: Juniper Junos ztp.json

Juniper Junos Offbox Agent / Apstra ZTP 4.0

Juniper Junos Bootstrap File

Apstra ZTP uses a Python script to provision the device during ZTP. To allow the Python script ( to run on the Junos device, additional configuration is required. Use the script to bootstrap Apstra ZTP on Junos. It downloads and runs the ZTP script.

Juniper Junos Custom Config File

When configuring custom-config for Juniper Junos devices, refer to the example, a bash file executed during the ZTP process. It can set system configuration (such as Syslog, NTP, SNMP authentication) prior to device system agent installation.


If you set external AAA authentication (for example authentication-order), replicate the device system agent device-user and device-user-password in the AAA system. Otherwise, the device system agent generates an authentication error.

Restart Juniper Junos ZTP

To erase (zeroize) the device and restart Juniper Junos ZTP process:

Troubleshoot Juniper Junos ZTP

When in ZTP mode, the Juniper switch downloads the and ztp.json files to the /var/preserve/apstra directory. For diagonstics, take note of the /var/preserve/apstra/aosztp.log file.

Additional useful messages can be found in /var/log/messages (search for 'ztp')