配置 Apstra ZTP
- 通过 Apstra ZTP GUI 配置 Apstra ZTP DHCP 服务器
接下来在“组”中,用户可以配置静态DHCP主机以将设备硬件以太网地址映射到IP固定地址。
如果您有其他主机,则可以通过单击“其他主机”链接来配置其他主机。
如果单击“代码编辑器”选项卡,在配置器中输入的条目将位于 dhcpd.conf 文件中。
完成后,单击“保存并继续”。Apstra ZTP 将使用更新后的配置自动重新启动 DHCP。如果配置中出现错误,Apstra ZTP 将提醒您错误。
- 通过 dhcpd.conf 文件配置 Apstra ZTP DHCP 服务器
如果您使用其他 DHCP 服务器,则您有责任为 Apstra 提供的 DHCP 服务器配置本指南中所述的相同选项。
例如,如果您使用的是瞻博网络 Junos OS 或 Junos OS 演化版设备,则必须确保服务器包含以下内容,以便设备加载正确的配置文件。
option space JUNIPER option JUNIPER.config-file-name code 1 = text option JUNIPER-encapsulation code 43 = encapsulate JUNIPER option user-class-information code 77 = text; class "juniper" { match if (substring(option vendor-class-identifier, 0, 7) = "Juniper") and not (suffix(option user-class-information, 4) = "-EVO"); option JUNIPER.config-file-name "junos_apstra_ztp_bootstrap.sh"; } class "juniper-evo" { match if (substring(option vendor-class-identifier, 0, 7) = "Juniper") and (suffix(option user-class-information, 4) = "-EVO"); option JUNIPER.config-file-name "ztp.py"; }
DHCP 配置文件位于目录中的 Apstra ZTP 虚拟机
/containers_data/dhcp
上。admin@apstra-ztp:~$ sudo ls -l /containers_data/dhcp total 16 -rw------- 1 root root 2533 Oct 21 00:35 dhcpd.conf -rw------- 1 root root 146 Oct 21 00:35 Dockerfile -rw------- 1 root root 932 Oct 21 00:35 init.sh -rw------- 1 root root 1896 Oct 21 00:35 rsyslog.conf admin@apstra-ztp:~$
注意:所有配置文件都归
root
所有。您必须使用 sudo 来运行命令,就像使用命令一样,或者在使用sudo
命令后sudo -s
运行root
命令root
。dhcpd.conf
使用 vi 或 nano 文本编辑器编辑文件。admin@apstra-ztp:~$ sudo nano /containers_data/dhcp/dhcpd.conf
- 添加与管理网络对应的“组”:
group { option tftp-server-name "192.168.59.4"; subnet 192.168.59.0 netmask 255.255.255.0 { range 192.168.59.21 192.168.59.99; option routers 192.168.59.1; } host my-switch { hardware ethernet 34:17:eb:1e:41:80; fixed-address 192.168.59.100; } }
tftp-server-name
ZTP 服务器的 IP 地址(不是 URL) subnet
IP 管理网络和网络掩码 range
动态 DHCP IP 地址的范围。确保整个范围可用,并且未使用该范围内的静态配置的 IP 地址。 option routers
管理网络的默认网关路由器 host
静态 DHCP IP 地址 hardware ethernet
用于 DHCP 协商的管理接口 fixed-address
适用于具有硬件以太网 MAC 的设备。使用交换机 MAC 地址 - 以下 DHCP 参数是可选的:
ddns-update-style none; option domain-search "example.internal"; option domain-name "example.internal"; option domain-name-servers 8.8.8.8, 8.8.4.4;
- 如果将 ZTP 与 SONiC 配合使用,则必须编辑以下内容:
class "sonic" { match if (substring(option host-name, 0, 5) = "sonic"); option sonic-provision-url "tftp://192.168.59.4/ztp.py"; }
sonic-provision-url
:带有 ZTP 服务器 IP 地址的 TFTP URL - 修改任何 DHCP 配置后,使用命令重新启动
sudo docker restart dhcpd
Apstra ZTP DHCP 进程。admin@apstra-ztp:~$ docker restart dhcpd dhcpd admin@apstra-ztp:~$
- 通过 Apstra ZTP GUI 编辑 Apstra ZTP 配置文件 ztp.json
Apstra ZTP VM 包括一个 TFTP 和 nginx HTTP 服务器。这些服务器不需要配置。两个服务器都提供目录外
/containers_data/tftp
的文件。admin@apstra-ztp:~$ sudo ls -l /containers_data/tftp/ total 280 -rwxr-xr-x 1 admin admin 2448 Aug 28 16:39 config_verifier.py -rwxr-xr-x 1 admin admin 742 Aug 28 16:39 container_init.sh -rwxr-xr-x 1 admin admin 178 Aug 28 16:39 Dockerfile -rwxr-xr-x 1 admin admin 107 Aug 28 16:39 eos_custom.sh -rwxr-xr-x 1 admin admin 5735 Aug 28 16:39 junos_apstra_ztp_bootstrap.sh -rwxr-xr-x 1 admin admin 1799 Aug 28 16:39 junos_custom.sh -rwxr-xr-x 1 admin admin 86 Aug 28 16:39 nxos_custom.sh -rwxr-xr-x 1 admin admin 205 Aug 28 16:39 poap-md5sum -rwxr-xr-x 1 admin admin 1843 Aug 28 16:39 rsyslog.conf -rwxr-xr-x 1 admin admin 170 Aug 28 16:39 sonic_custom.sh -rwxr-xr-x 1 admin admin 2272 Aug 28 16:39 ztp.json -rwxr-xr-x 1 admin admin 115549 Aug 28 16:58 ztp.py -rw------- 1 root root 115506 Aug 28 16:58 ztp.py.md5 admin@apstra-ztp:~$
该文件
ztp.json
包含 Apstra ZTP 脚本ztp.py
的所有配置。这可以从 Apstra ZTP UI 或直接通过 ztp.json 文件进行配置。Apstra ZTP UI 配置向导将指导您配置 Apstra ZTP 配置文件 (ztp.json)。
Apstra ZTP UI 将有一个“代码编辑器”选项卡,用于直接编辑 ztp.json 文件,以及一个“配置器”选项卡用于创建 Apstra ZTP 配置文件。
对于“配置器”选项卡,将有按以下内容组织的组:
更具体的数据优先于其他数据。例如,特定序列号的数据优先于任何其他数据,然后是模型,然后是平台,最后是默认数据。
“切换空字段”选项通过隐藏没有任何数据的字段来提高可见性。
您可以使用“其他 SN/平台/模型”和“删除 SN/平台/模型”链接添加或删除更多组。
Apstra ZTP 配置文件 (ztp.json) 使用以下密钥:
- 编辑 Apstra ztp.json 文件
ztp.json
使用 vi 或 nano 文本编辑器编辑文件。admin@apstra-ztp:~$ sudo nano /containers_data/tftp/ztp.json
- 该文件
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 } }
平台 - 除非定义了更具体的密钥,否则值将用于网络平台的所有设备(“nxos”、“eos”、“junos”、“sonic”)。 "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" } }
model - 值用于特定设备型号(例如“QFX10002-36Q”)的所有设备。 "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" }
序列号 - 值用于与特定设备序列号匹配的设备(例如“TH0TFD6TCET0015G0015”)。 "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
请参阅 Apstra ZTP - ztp.json 参数