ztp.json键
Apstra ZTP 配置文件 () 包含 Apstra ZTP 脚本 (ztp.jsonztp.py) 的所有配置。切勿直接修改ztp.py。您可以使用多种方法来配置 ztp.json。首先,熟悉文件中的密钥,如下所述,然后根据设备的需要配置文件(如后面的页面中所述)。
关键类别
文件的内容 ztp.json 从更一般的部分组织到更具体的部分,如下所示:
-
默认值 - 部分中配置的值
defaults将用于所有设备,除非更具体的部分使用相同的键。更具体的节值优先。下面是可以在默认值部分中放置的内容的示例:"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 } } -
特定于平台 - 每个供应商平台部分中的配置值(、、、
soniclinuxjunos-evonxoseos)将用于该供应商的所有设备,除非在更具体的部分中junos定义了相同的键。下面是使用 SONiC OS 的设备示例:"sonic": { "sonic-versions": ["SONiC-OS-3.4.0-Enterprise_Advanced"], "sonic-image": "http://10.85.24.52/sonic/3.4.0/sonic-3.4.0-GA-adv-bcm.bin", "device-root-password": "admin", "device-user": "admin", "device-user-password": "admin", "custom-config": "sonic_custom.sh", "system-agent-params": { "agent_type": "onbox", "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" } -
特定于序列号 - 特定序列号(系统 ID)下的配置值用于该设备。例如:
"TH0TFD6TCET0015G0015": { "sonic-versions": ["SONIC-OS-4.0.5-Enterprise_Advanced"], "sonic-image": "http://10.85.24.52/sonic/4.0.5/sonic-broadcom-enterprise-advanced-4.0.5-GA.bin" }
键列表
有关文件中的所有 ztp.json 键,请参阅下面的说明和示例。所有键都包含在每个类别中,无论它们是否专门应用于该类别。例如,您可能会注意到该 junos 部分包含键 nxos-version。这是为了允许将所有键包含在类别中 defaults 。您可以忽略或删除不适用于设备的密钥。
- NXOS 版本
- nxos-image(-location)
- EOS 版本
- EOS图像(-位置)
- Junos 版本
- junos-image(-location)
- junos-evo-versions
- junos-evo-image(-location)
- 索尼克版本
- 声波图像(-位置)
- 设备根密码
- 设备用户
- 设备用户密码
- 自定义配置
- 双路由引擎(复选框)
- system-agent-params
- id(system-agent-params)
- agent_type(系统代理参数)
- 平台(系统代理参数)
- job_on_create(系统代理参数)
- operation_mode(system-agent-params)
- profile(system-agent-params)
- 软件包(系统代理参数)
- force_package_install(系统代理参数)
- install_requirements(系统代理参数)
- enable_monitor(系统代理参数)
- open_options(这仍然相关吗?
NXOS 版本
该 nxos-versions 参数包括思科NX-OS设备的有效操作系统版本。
例子: "nxos-versions": [ "10.2(5)", "9.3(11)" ]
nxos-image(-location)
在配置器中被调用 nxos-image-location ,在代码编辑器和 CLI 中称为 nxos-image.
如果设备上运行的版本与 中的 nxos-versions版本不匹配,则会上传字段中指定的 nxos-image 思科 NX-OS 映像位置。
默认情况下,映像通过 TFTP 加载。您还可以通过 HTTP 加载图像,方法是使用 IP 地址指定 HTTP/HTTPS 服务器 URL。您还可以将NX-OS映像上传到Apstra服务器上的设备/操作系统映像。
TFTP 示例(默认):“nxos-image”: [ “nxos.10.2.5.bin” ]
HTTP 服务器示例:“nxos-image”: “http://192.168.59.4/nxos.10.2.5.bin”
设备/操作系统映像示例:“nxos-image”:“https://192.168.59.3/dos_images/nxos.10.2.5.bin”
EOS 版本
该 eos-versions 参数包括 Arista EOS 设备的有效操作系统版本。
例子: "eos-versions": [ "4.27.6M" ]
EOS图像(-位置)
在配置器中被调用 eos-image-location ,在代码编辑器和 CLI 中称为 eos-image.
如果设备上运行的版本与 中的 eos-versions版本不匹配,则会上传字段中指定的 eos-image Arista EOS SWI 图像位置。
默认情况下,映像通过 TFTP 加载。您还可以通过 HTTP 加载图像,方法是使用 IP 地址指定 HTTP/HTTPS 服务器 URL。您还可以将NX-OS映像上传到Apstra服务器上的设备/操作系统映像。
TFTP示例(默认):“EOS图像”:[“EOS-4.24.5M.swi” ]
HTTP 服务器示例:“eos-image”: “http://192.168.59.3/dos_images/EOS-4.21.51F.swi”
设备/操作系统映像示例:“nxos-image”:“https://192.168.59.3/dos_images/nxos.10.2.5.bin”
要使用任何 HTTP 服务器进行图像传输,请输入带有 IP 地址的有效 HTTP 或 HTTPS URL。例如: "eos-image": "http://192.168.59.3/dos_images/EOS-4.27.6M.swi"
此示例使用来自 Apstra ZTP 服务器 (192.168.59.4) 的 HTTP 从 Apstra ZTP /container_data/tftp/ 目录传输 Arista EOS 映像。
您还可以将 Arista EOS 映像上传到 Apstra 控制器设备/操作系统映像。例如:
"nxos-image": "https://192.168.59.3/dos_images/EOS-4.27.6M.swi"
Junos 版本
该 junos-versions 参数包括瞻博网络 Junos OS 设备的有效操作系统版本。
例子: "junos-versions": [ "22.4R2" ]
junos-image(-location)
在配置器中被调用 junos-image-location ,在代码编辑器和 CLI 中称为 junos-image.
如果正在运行的 Junos OS 版本与列表中的版本 junos-versions 不匹配,则会上传字段中的映像 junos-image 。
默认情况下,映像通过 TFTP 从 ZTP 服务器的 /container_data/tftp/ 目录加载。要使用任何 HTTP 服务器传输图像,请输入带有 IP 地址的有效 HTTP URL。例如:
“Junos-image”: “http://192.168.59.4/jinstall-host-qfx-5-18.4R3-S4.2-signed.tgz”
要使用任何 HTTP 服务器进行图像传输,请输入带有 IP 地址的有效 HTTP 或 HTTPS URL。例如:
"junos-image": "http://192.168.59.4/jinstall-host-qfx-5e-x86-64-21.4R3-S4.13-secure-signed.tgz"
此示例使用来自 Apstra ZTP 服务器 (192.168.59.4) 的 HTTP 从 Apstra ZTP /container_data/tftp/ 目录传输瞻博网络 Junos 映像。
您还可以将瞻博网络 Junos 映像上传到 Apstra 控制器设备/操作系统映像。例如:
"junos-image": "https://192.168.59.3/dos_images/jinstall-host-qfx-5e-x86-64-21.4R3-S4.13-secure-signed.tgz"
junos-evo-versions
该 junos-evo-versions 参数包括瞻博网络 Junos OS 演化版设备的有效操作系统版本。
例子: "junos-versions": [ "22.4R2-EVO" ]
junos-evo-image(-location)
索尼克版本
该 sonic-versions 参数包括企业 SONiC 设备的有效操作系统版本。
例子: "sonic-versions": [ "SONiC-OS-4.0.5-Enterprise_Advanced" ]
声波图像(-位置)
在配置器中被调用 sonic-image-location ,在代码编辑器和 CLI 中称为 sonic-image.
这是在运行版本与列表中的版本 sonic-versions 不匹配时要加载的 SONiC ONIE bin 映像的文件名。
要使用任何 HTTP 服务器进行图像传输,请输入带有 IP 地址的有效 HTTP 或 HTTPS URL。例如:
"sonic-image":
"http://192.168.59.3/sonic-broadcom-enterprise-advanced-4.0.5-GA.bin"
此示例使用来自 Apstra ZTP 服务器 (192.168.59.4) 的 HTTP 从 Apstra ZTP /container_data/tftp/ 目录传输 SONiC 映像。
您还可以将 SONiC 映像上传到 Apstra 控制器设备/操作系统映像。例如:
"sonic-image":
"https://192.168.59.3/dos_images/sonic-broadcom-enterprise-advanced-4.0.5-GA.bin"
设备根密码
ZTP 进程将设备 root 密码设置为此值。对于 Arista EOS 和思科 NX-OS 设备,用于 device-root-password 设置系统 admin 密码的密码。
例子: "device-root-password": "root-admin-password"
设备用户
设备系统代理的用户名。此外,如有必要,ZTP 进程会使用此用户名和 device-user-password.
例子:
"device-user": "aosadmin", "device-user-password": "aosadmin-password"
设备用户密码
设备系统代理的密码。此外,如有必要,ZTP 进程会在设备上创建一个使用此密码的用户 device-user 。
例子:
"device-user": "aosadmin", "device-user-password": "aosadmin-password"
自定义配置
这是 TFTP 目录中自定义配置外壳脚本的文件名或指向 HTTP 服务器上文件的 URL。此 shell 脚本在 ZTP 过程中运行,允许您向设备添加自定义配置。有关详细信息, 请参阅平台特定信息 。
例子: "custom-config": "junos_custom.sh"
双路由引擎(复选框)
system-agent-params
系统代理参数用于在每个设备上创建新用户和设备系统代理。(有关所有可用 system-agent-params 选项,请参阅 REST /api/system-agentsAPI 文档。
"system-agent-params": {
"id": "",
"agent_type": "",
"platform": "",
"job_on_create": "",
"operation_mode": "",
"profile": "",
"packages": [],
"force_package_install": false,
"install_requirements": false,
"enable_monitor": false
下面介绍了各个系统代理参数。
id(system-agent-params)
agent_type(系统代理参数)
代理类型为本机或脱机
例子: "agent_type": "onbox"
平台(系统代理参数)
此字段仅用于异机代理。将其设置为设备平台(“eos”、“nxos”、“junos”)。仅小写
例子: "platform": "junos"
job_on_create(系统代理参数)
要在设备上安装本机代理, set job_on_create 请 install
例子: "job_on_create": "install"
operation_mode(system-agent-params)
profile(system-agent-params)
在 Apstra 中定义的设备代理配置文件,用于创建代理。该值必须是代理配置文件的 ID,而不是代理配置文件名称。
示例:“配置文件”:“8d68d1ec-c168-4ef3-8ffd-09389c17a3e4”
瞻博网络在 Apstra 4.2.0 版上的要求:如果需要提供“配置文件”参数,则必须使用 UUID 而不是配置文件名称/标签。
参数 force_package_install、 install_requirements和 enable_monitor 在 ZTP 服务器中始终可见。这将导致 ZTP 过程中代理创建失败。您必须从中删除 system-agent-params 这些参数,瞻博网络代理创建才能正常工作。但是,由于错误,当您通过 Apstra GUI 从ztp.json文件中删除这些参数时,它们实际上并未被删除。配置器将它们重新添加进来。为防止这种情况发生,请使用 CLI 而不是 Apstra ZTP GUI,并通过 SSH 连接登录 ZTP 服务器。然后重新启动 tftp 容器。
软件包(系统代理参数)
设置为配置要上传到系统代理的其他 SDK 或扩展遥测包。
例子:
"packages": [ "aos-deployment-helper-nxos", "aosstdcollectors-builtin-nxos", "aosstdcollectors-custom-nxos" ]
force_package_install(系统代理参数)
对于在 Apstra 4.2.0 中使用的瞻博网络设备,您必须通过 CLI 删除此参数。如果您使用 Apstra ZTP GUI,则会重新添加参数。
install_requirements(系统代理参数)
始终设置为 false。任何受支持的网络操作系统当前都不需要。
例子: "install_requirements": false
对于在 Apstra 4.2.0 中使用的瞻博网络设备,您必须通过 CLI 删除此参数。如果您使用 Apstra ZTP GUI,则会重新添加参数。
enable_monitor(系统代理参数)
对于在 Apstra 4.2.0 中使用的瞻博网络设备,您必须通过 CLI 删除此参数。如果您使用 Apstra ZTP GUI,则会重新添加参数。
open_options(这仍然相关吗?
例子:
"open_options": {
"proto": "https",
"port": "443"
}
仅限外箱代理。设置为在异机代理与设备 API 接口之间启用 HTTPS。如果未定义open_options,则连接默认为 HTTP。
例子
有关值的一些 ztp.json 示例,请参阅以下部分。
- 违约
- Apstra ZTP 4.2.0 上的思科本机代理示例
- 在 Apstra ZTP 4.2.0 上使用 HTTP 的思科外箱代理示例
- Arista 在 Apstra ZTP 4.2.0 上的代理示例
- Apstra ZTP 4.2.0 上的 Junos 外箱代理示例
- Apstra ZTP 4.2.0 上的 Junos Evolved 本机代理示例
- 瞻博网络操作系统演化版
- Apstra ZTP 4.2.0 上的企业 SONiC 本机代理示例
- 特定于模型的示例
违约
您可能希望包含为默认值的值示例包括:
"defaults": {
"nxos-image": "http://buildfiles.dc1.apstra.com/apstrktr/switch_images/cisco/nxos.10.2.5.bin",
"eos-image": "http://buildfiles.dc1.apstra.com/apstrktr/switch_images/arista/EOS-4.27.6M.swi",
"junos-image": "http://10.24.128.10/apstrktr/switch_images/juniper/junos-5e-22.2R3.15.tgz",
"junos-evo-image": "http://10.24.128.10/apstrktr/switch_images/juniper/junos-evo-install-qfx-ms-fixed-x86-64-22.2R3.13-EVO.iso",
"sonic-image": "http://buildfiles.dc1.apstra.com/apstrktr/switch_images/sonic/sonic-4.0.5-GA-adv-bcm.bin",
"device-root-password": "strongrootpassword",
"device-user": "admin",
"device-user-password": "stronguserpassword"
"system-agent-params": {
"agent_type": "onbox",
"install_requirements": false
}
所有设备都将使用这些值,除非配置了更具体类别的值,则这些值将优先。更具体的类别包括特定于平台的类别,例如 "junos"、 "junos-evo"、 、 "nxos""eos"和 "sonic";特定于型号的类别,例如;以及特定于序列号的类别,例如 "QFX10002-60C""TH0TFD6TCET0015G0015"。
Apstra ZTP 4.2.0 上的思科本机代理示例
{
"nxos": {
"nxos-versions": [ "10.2(5)" ],
"nxos-image": "http://192.168.59.4/nxos.10.2.5.bin",
"device-root-password": "strongrootpassword",
"custom-config": "nxos_custom.sh",
"device-user": "admin",
"device-user-password": "stronguserpassword",
"system-agent-params": {
"agent_type": "onbox",
"job_on_create": "install"
}
}
}
在 Apstra ZTP 4.2.0 上使用 HTTP 的思科外箱代理示例
{
"nxos": {
"nxos-versions": [ "10.2(5)" ],
"nxos-image": "http://192.168.59.4/nxos.10.2.5.bin",
"custom-config": "nxos_custom.sh",
]"device-user": "admin",
"device-user-password": "admin-password",
"system-agent-params": {
"username": "admin",
"password": "admin",
"agent_type": "offbox",
"platform": "nxos",
"open_options": {
"proto": "https",
"port": "443"
},
"packages": [
"aos-deployment-helper-nxos",
"aosstdcollectors-builtin-nxos",
"aosstdcollectors-custom-nxos"
]
}
}
}
此配置可在服务器上的外部代理与设备 API 之间启用安全的外部代理 HTTPS(端口 443)。
open_options“ 无法通过 Apstra ZTP UI 配置器进行配置。您必须使用 GUI 代码编辑器或从 CLI 编辑ztp.json文件。
Arista 在 Apstra ZTP 4.2.0 上的代理示例
{
"eos": {
"eos-versions": [ "4.27.6M" ],
"eos-image": "http://192.168.59.3/EOS-4.27.6M.swi",
"custom-config": "eos_custom.sh",
"device-root-password": "admin-password",
"device-user": "admin",
"device-user-password": "admin-password",
"system-agent-params": {
"agent_type": "onbox",
"job_on_create": "install"
}
}
}
Apstra ZTP 4.2.0 上的 Junos 外箱代理示例
{
"junos": {
"junos-versions": [ "21.4R3-S4.13" ],
"junos-image": "http://192.168.59.4/jinstall-host-qfx-5e-x86-64-21.4R3-S4.13-secure-signed.tgz",
"device-root-password": "root-password",
"device-user": "admin",
"device-user-password": "admin-password",
"custom-config": "junos_custom.sh",
"system-agent-params": {
"platform": "junos",
"agent_type": "offbox",
"job_on_create": "install"
}
}
}
{
"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"
}
}
Apstra ZTP 4.2.0 上的 Junos Evolved 本机代理示例
{
"junos-evo": {
"junos-evo-versions": [ "22.4R2.11-EVO" ],
"junos-evo-image": "http://192.168.59.4/junos-evo-install-qfx-ms-x86-64-22.4R2.11-EVO.iso",
"device-root-password": "root-password",
"device-user": "admin",
"device-user-password": "admin-password",
"custom-config": "junos_custom.sh",
"system-agent-params": {
"agent_type": "onbox",
"job_on_create": "install"
}
}
}
您可以将以下附加字段用于双 RE 平台,例如 PTX10004。
"dual-routing-engine": true, "management-ip": "10.161.37.7", "management-gw-ip": "10.161.39.254", "management-subnet-prefixlen": "21", "management-master-ip": "10.161.37.8", "management-backup-ip": "10.161.37.9",
瞻博网络操作系统演化版
Apstra ZTP 4.2.0 上的企业 SONiC 本机代理示例
{
"sonic": {
"sonic-versions": [ "SONiC-OS-4.0.5-Enterprise_Advanced" ],
"sonic-image": "http://192.168.59.4/sonic-broadcom-enterprise-advanced-4.0.5-GA.bin",
"device-root-password": "root-password",
"device-user": "admin",
"device-user-password": "admin-password",
"custom-config": "sonic_custom.sh",
"system-agent-params": {
"agent_type": "onbox",
"job_on_create": "install"
}
}
}
如果您使用(例如)以外的adminaosadmin其他用户device-user,Apstra ZTP 会创建此新用户,但它不会更改默认 SONiC admin 用户的密码(默认密码设置为YourPaSsWoRd)。
特定于模型的示例
"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",