Configure ZTP Server With CVP Collection¶
Configure management network¶
Because we want to be generic, let’s configure a DHCP server on the NAT gateway to provide a fixed DHCP address to your devices. Thus you will be able to get access to them easily. To support that, we can leverage arista.cvp.dhcp_configuration
to install and configure a DHCP server.
This role requires a set of information related to your own setup:
For your out of band management network:
- Subnet you are using to allocate your device’s IP.
- Name server to send to your DHCP client.
- Default scope for unknown devices.
For every device:
- EOS device hostname you want to configure.
- Mac address to use to identify a request from your device.
- IP address to allocate.
- An optional URI for ZTP registration.
Create an inventory file¶
Inventory contains information related to your NAT-gateway:
# inventory.yml
---
all:
children:
DHCP:
hosts:
nat_gateway:
ansible_host: < YOUR RUNNER NETWORK>
ansible_user: < USERNAME >
ansible_password: < PASSWORD >
Create host variables¶
Host variables for your NAT-gateway should be defined like this:
---
ztp:
default:
registration: '< Optional ZTP registration URL >'
gateway: < OOB DEFAULT GATEWAY >
nameservers:
- < DNS >
general:
subnets:
- network: < OOB SUBNET >
netmask: < OOB NETMASK >
gateway: < OOB DEFAULT GATEWAY >
nameservers:
- < DNS >
start: < FIRST LEASE IP >
end: < LAST LEASE IP >
lease_time: 300
clients:
# AVD/CVP Integration
- name: DC1-SPINE1
mac: 0c:1d:c0:1d:62:01
ip4: 10.73.1.11
- name: DC1-SPINE2
mac: 0c:1d:c0:1d:62:02
ip4: 10.73.1.12
Playbook to configure DHCP¶
Playbook is fairly simple:
---
- name: Configure DHCP Service for ZTP
hosts: DHCP
gather_facts: true
tasks:
- name: 'Execute DHCP configuration role'
ansible.builtin.import_role:
name: arista.cvp.dhcp_configuration
Last update:
February 10, 2023