cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
521
Views
5
Helpful
2
Replies

NSO Templates: Using tab delimited file for variables

eric.n.dunn.ctr
Level 1
Level 1

I am testing the creation of 200 L2 VPNs on a ios cisco device.

I am using a 'tab-delimited' file to apply template variables.

I have been successful to apply the variables by using the tab-delimted file by commiting after each apply-template.

I have to run the entire ncs_cli > configure > cli commands > exit > exit for each time I apply the template variables.

Is there a way to apply the template variables by looping through all 200 variable sets prior to commiting?

Example TAB-DELIMITED file: l2-vpn_VARS.txt

---

200     200

201     201

202     202

300     300

301     301

302     302

---

Example BASH:

---

while read LR_ID VLAN_ID; do

echo "LR_ID_VAL=$LR_ID VLAN_ID_VAL=$VLAN_ID"

done < l2-vpn_VARS.txt

---

Example ncs_cli commands

---

while read LR_ID_VAL VLAN_ID_VAL; do

echo "LR_ID=$LR_ID_VAL VLAN_ID=$VLAN_ID_VAL"

ncs_cli -u admin << EOF1

configure

request devices device RTR-NAME apply-template template-name cisco-layer-2-vpn-example variable { name VLAN_ID value ${VLAN_ID_VAL} } variable { name LR_ID value ${LR_ID_VAL} }

commit

exit

exit

EOF1

done < DIRECTORY/l2-vpn_VARS.txt

---

Template creation

---

ncs_cli -u admin

configure

set devices template cisco-layer-2-vpn-example config ios:l2vpn-vfi l2vpn vfi context LR{$LR_ID}_VPLS vpn id {$LR_ID}

set devices template cisco-layer-2-vpn-example config ios:l2vpn-vfi l2vpn vfi context LR{$LR_ID}_VPLS autodiscovery bgp signaling ldp

tag add devices template cisco-layer-2-vpn-example config ios:l2vpn-vfi l2vpn vfi context LR{$LR_ID}_VPLS replace

set devices template cisco-layer-2-vpn-example config ios:bridge-domain bridge-domain-list {$VLAN_ID}

set devices template cisco-layer-2-vpn-example config ios:bridge-domain bridge-domain-list {$VLAN_ID} member vfi LR{$LR_ID}_VPLS

set devices template cisco-layer-2-vpn-example config ios:bridge-domain bridge-domain-list {$VLAN_ID} member interface-list Ethernet-Internal1/0/0 {$VLAN_ID}

tag add devices template cisco-layer-2-vpn-example config ios:bridge-domain bridge-domain-list {$VLAN_ID} replace

set devices template cisco-layer-2-vpn-example config ios:interface Ethernet-Internal 1/0/0 service instance {$VLAN_ID} ethernet encapsulation dot1q id {$VLAN_ID}

set devices template cisco-layer-2-vpn-example config ios:interface Ethernet-Internal 1/0/0 service instance {$VLAN_ID} ethernet rewrite ingress tag pop 1 mode symmetric

tag add devices template cisco-layer-2-vpn-example config ios:interface Ethernet-Internal 1/0/0 service instance {$VLAN_ID} replace

compare running brief

commit

show devices template cisco-layer-2-vpn-example

exit

exit

---

1 Accepted Solution

Accepted Solutions

Akira Iwamoto
Cisco Employee
Cisco Employee

This question is about how to use bash basically.

There would be many ways, but here's an example I just created.

You can do more complicated things using pipes.

------

ncs_cli -u admin << EOF1

$(

echo "configure"

while read LR_ID_VAL VLAN_ID_VAL; do

    echo "request devices device RTR-NAME apply-template template-name cisco-layer-2-vpn-example variable { name VLAN_ID value ${VLAN_ID_VAL}} variable { name LR_ID value ${LR_ID_VAL}}";

done < DIRECTORY/l2-vpn_VARS.txt

echo "commit"

echo "exit"

echo "exit"

)

EOF1

------

View solution in original post

2 Replies 2

Akira Iwamoto
Cisco Employee
Cisco Employee

This question is about how to use bash basically.

There would be many ways, but here's an example I just created.

You can do more complicated things using pipes.

------

ncs_cli -u admin << EOF1

$(

echo "configure"

while read LR_ID_VAL VLAN_ID_VAL; do

    echo "request devices device RTR-NAME apply-template template-name cisco-layer-2-vpn-example variable { name VLAN_ID value ${VLAN_ID_VAL}} variable { name LR_ID value ${LR_ID_VAL}}";

done < DIRECTORY/l2-vpn_VARS.txt

echo "commit"

echo "exit"

echo "exit"

)

EOF1

------

PERFECT

My bash script: Automate configuration of L2 VPN. 200 L2 VPNs configured per device (15 minutes per device).

Akira Iwamoto bash script: Automate configuration of L2 VPN. 200 L2 VPNs configured per device (3 min 24 sec per device).

Thank you a million times.