In your ATD interface, click on Programmability IDE and use the password listed on your Lab Topology (note: password is auto-generated for each Lab instance)
Once your VScode interface is ready, we will install the ATD-AVD Repo to your lab instance. Open a New Terminal console and enter command below.
# Run Script to setup environment
$ curl -fsSL https://get.avd.sh/atd/install.sh | sh
Then in your VScode, navigate to labfiles/arista-ansible/atd-avd
to complete lab. All the paths in the next sections will be based from here.
$ cd labfiles/arista-ansible/atd-avd
In addition, open CVP by clicking the CVP link. Login with username 'arista' and the auto-generated password on the Lab Topology screen.
Because password is auto-generated, you must update ansible_password
in this inventory file to use correct credentials. Also, ensure the ansible_host
is updated to static IP below.
# edit atd-inventory/inventory.yml
---
all:
children:
cv_servers:
hosts:
cv_atd1:
ansible_host: 192.168.0.5
ansible_user: arista
ansible_password: < set your password here from your webinterface >
ATD_LAB:
vars:
ansible_user: arista
ansible_ssh_pass: < set your password here from your webinterface >
To emulate ZTP environment, we will move all devices from their current containers to a dedicated one named STAGING
to mimic undefined
container.
# Run Playbook to Prepare CloudVision for AVD
$ ansible-playbook playbooks/atd-prepare-lab.yml
This playbook creates tasks on CloudVision and gives you the option to validate changes before applying change control.
In CVP, create a Change Control and Execute all the pending tasks the playbook generated. After tasks are complete, your CVP Network Provisioning screen should look like the following.
While the playbook supports build/provision/execute in a row, we will proceed on a step by step basis.
$ ansible-playbook playbooks/atd-fabric-deploy.yml --tags build
This playbook when used with build
tag creates configuration files and documentation.
Output can be reviewed in your VScode instance:
- EOS Configuration: atd-inventory/intended/configs
- Fabric documentation: atd-inventory/documentation
$ ansible-playbook playbooks/atd-fabric-deploy.yml --tags provision
This playbook when used with the provision
tag creates:
- A new containers topology to support AVD devices based on inventory file
- Move devices to their respective container
- Create configlet per device and bind to devices.
Change control remains on user's side as it is a safer approach for production even if we can configure AVD to automatically apply changes for lab purposes.
Create the Change Control and Execute all pending tasks. This will take 5-6 minutes as the management IP address is moved on all nodes from the default to MGMT VRF, and CVP needs to reflect this change.
At some point, you may want to continue to get some configlets managed outside of ansible and directly on CloudVision. A good example here is NTP configuration which is configured on ATD-INFRA
configlet applied to TENANT container.
Go to Provisioning > Configlets and edit ATD-INFRA
to replace NTP configuration with following content:
!
ntp local-interface vrf MGMT Management1
ntp server vrf MGMT 192.168.0.1 prefer
!
Apply changes to all devices and check NTP status
In parallel, you can continue to update configuration on AVD side to add/delete/update tenants and keeping this ntp settings still configured.
Edit file atd-inventory/group_vars/ATD_TENANTS_NETWORKS.yml and uncomment Tenant_B
before running again playbook
- Edit group_vars
# edit atd-inventory/group_vars/ATD_TENANTS_NETWORKS.yml
tenants:
# Tenant A Specific Information - VRFs / VLANs
Tenant_A:
...
Tenant_B:
mac_vrf_vni_base: 20000
vrfs:
Tenant_B_OP_Zone:
vrf_vni: 20
svis:
210:
name: Tenant_B_OP_Zone_1
tags: ['opzone']
profile: WITH_NO_MTU
ip_address_virtual: 10.2.10.1/24
211:
name: Tenant_B_OP_Zone_2
tags: ['opzone']
profile: GENERIC_FULL
ip_address_virtual: 10.2.11.1/24
- Run playbook
$ ansible-playbook playbooks/atd-fabric-deploy.yml --tags "build, provision"
Once more, in CVP, create Change Control and Execute all tasks.