Sei sulla pagina 1di 62

Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward.

Column A ha
script. The script loads this workbook and then for each section (CDP for example) reads all the rows in
variables to the right of the keyword and loads those up into the json payload that gets sent to the APIC.
"relatively" efficient, but I'm sure could be improved upon. For each row, there is some error handling tha
columb B and color coded red or green based on the return. Note that every time the script is ran, as the
re-running the script will re-color code (as appropriate) the status column, as well as completely destroy fo
the script against.

Note that before each functional section, notes are written above in order to document

One final note, you must use XLS format (older excel forma

Function Script StatusFault StatusReservedData/Variables/Configs ----------------------------------------

Comission Hardware Section: id=ID of the node being deploeyd


node. fabric= (Optional) Default is 1 - will be
serial name id
comission_hw

NTP Section: address= Name/

address status
ntp

DNS Section: name= Name of the node being deployed. add


Domain. domain_status= (Optional) created | created
address preferred status
dns

Fabric BGP Section: asn= Fabric

asn status
fabric_bgp

Fabric BGP Section: rr= Fabric route

rr status
fabric_rr

Fabric BGP Section: name= n


Fabric BGP Section: name= n

name status
pod_pol
raightforward. Column A has many strings that are basically mapped back to specific functions in the Python
ample) reads all the rows in column A looking for the term/string 'cdp' -- once it finds this string it loads up the
that gets sent to the APIC. The function will do this once for each row that contains the string. This shoudl be
is some error handling that catches the HTTP status code returned by the APIC -- that code is then input into
me the script is ran, as the workbook is loaded from xlrd -> xlwt the formatting is lost (but not cell contents) so
ell as completely destroy formatting in this document. Please save a "master" file and then a second to run
the script against.

above in order to document what variables are allowed (without throwing HTTP 400 codes).

S format (older excel format) for the read/write in Python to work.

----------------------------------------------------------------------------------------------------------------------------------------------------

=ID of the node being deploeyd as an integer. serial= Serial number of device being deployed. descr= (Optional) Description of the
= (Optional) Default is 1 - will be relevant for multipod. pod= (Optional) Default is 1 - will be relevant for multipod
descr fabric pod

NTP Section: address= Name/IP of the NTP server. status= created | created,modified | deleted

of the node being deployed. address =IP of DNS Server. status= created | created,modified | deleted. domain= (Optional) DNS
us= (Optional) created | created,modified | deleted. preferred= (Optional) yes | no. domain_default= (Optional) yes | no
domain domain_defauldomain_status

bric BGP Section: asn= Fabric BGP ASN as an integer. status= created | created,modified | deleted

c BGP Section: rr= Fabric route reflector ID as an integer. status= created | created,modified | deleted

Fabric BGP Section: name= name of Pod Policy. status= created | created,modified | deleted
nctions in the Python
string it loads up the
string. This shoudl be
code is then input into
t not cell contents) so
then a second to run

es).

-------------------------------

Optional) Description of the


ultipod

omain= (Optional) DNS


ptional) yes | no
1

Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward. Column A ha
and then for each section (CDP for example) reads all the rows in column A looking for the term/string
payload that gets sent to the APIC. The function will do this once for each row that contains the string. Th
catches the HTTP status code returned by the APIC -- that code is then input into columb B and color co
the formatting is lost (but not cell contents) so re-running the script will re-color code (as appropriate) th
second to

Note that before each functional section, notes are written above in

One final note, you must use XLS format

Function Script Status Fault Status Reserved Data/Variables/Configs ----------------------

CDP Sect

name state
cdp

LLDP Sec
name state
lldp

Link Policy Section: Name =


name speed
link

PC Policy Section: N
name mode
pc

PPV Policy S
name state
ppv

MCP Interface Po
name state
mcp_intf

password state
mcp_global

420515374.xls
2

. Column A has many strings that are basically mapped back to specific functions in the Python script. The script l
the term/string 'cdp' -- once it finds this string it loads up the variables to the right of the keyword and loads those
s the string. This shoudl be "relatively" efficient, but I'm sure could be improved upon. For each row, there is some
B and color coded red or green based on the return. Note that every time the script is ran, as the workbook is load
appropriate) the status column, as well as completely destroy formatting in this document. Please save a "maste
second to run the script against.

itten above in order to document what variables are allowed (without throwing HTTP 400 codes).

se XLS format (older excel format) for the read/write in Python to work.

------------------------------------------------------------------------------------------------------------------------------------------------------

CDP Section: Name = Policy Name. State = enabled or disabled. Status = created, created,modified, or deleted.

status

LLDP Section: Name = Policy Name. State = enabled or disabled. Status = created, created,modified, or deleted.
status

Section: Name = Policy Name. Speed = 1G, 10G, 40G, inherit. Auto Negotiate = on or off. Status = created, created,modified, or dele
auto_neg status

Policy Section: Name = Policy Name. Mode = active, mac-pin, off (static mode on). Status = created, created,modified, or deleted.
status

PPV Policy Section: Name = Policy Name. State = portlocal or global. Status = created, created,modified, or deleted.
status

MCP Interface Policy Section: Name = Policy Name. State = enabled or disabled. Status = created, created,modified, or deleted.
status

MCP Global Section: Password = whatever your password is. State = enabled or disabled.

420515374.xls
3

ic functions in the Python script. The script loads this workbook


to the right of the keyword and loads those up into the json
mproved upon. For each row, there is some error handling that
me the script is ran, as the workbook is loaded from xlrd -> xlwt
ng in this document. Please save a "master" file and then a

hrowing HTTP 400 codes).

------------------------------------------------------------------------------->

created, created,modified, or deleted.

created, created,modified, or deleted.

n or off. Status = created, created,modified, or deleted.

Status = created, created,modified, or deleted.

= created, created,modified, or deleted.

tatus = created, created,modified, or deleted.

ate = enabled or disabled.

420515374.xls
4

Err
event state
err_disable

VLAN Pool Section: Name = pool name. Mode =

name mode
vl_pool

AEP Section: name= The name of the AEP. statu


it should be 'created,modified' if there is a infra V
infra override is needed or it should be 'created

name status
aep

L3 Domain Section: name = Name of


name vlan_pool
l3_dom

Physical Domain Section: name = Name of th


name vlan_pool
phys_dom

Bind L3 Domain to AEP: name =


name l3_dom
l3_aep

Bind Phys Domain to AEP: name


name dom_name
phys_aep

Build vPC Pairs: name = Name of the vPC. id


name id
vpc

Switch Pair Profiles: name = Name of th

420515374.xls
5

Err Disable Recovery Section: Reason = mcp-loop, ep-move, or bpduguard. Recover = true or false.

ol name. Mode = dynamic or static (parent pool allocation). Start = VL ID in number (no need to prepend) "vlan-". End = VL ID in numbe
or dynamic. Status = created, created,modified, or deleted.

start end range_mode status

e of the AEP. status= created | created,modified | deleted. infra= created | created,modified | deleted (Note: This should be 'deleted' if n
f there is a infra VLAN). infra_vlan= (optional) infastructure vlan. override= (optional) created | created,modified | deleted (Note: This s
hould be 'created,modified' if there is an override policy). override_pc= (optional) Name of the port-channel policy. override_cdp= (opt
policy. override_lldp= (optional) Name of the lldp policy

infra infra_vlan override override_pc override_cdp override_lldp

name = Name of the L3-Out Domain. status = created | created,modified | deleted. vlan_pool = Name of the VLAN pool to associate t
status

me = Name of the Physical Domain. status = created | created,modified | deleted. vlan_pool = Name of the VLAN pool to associate to
status

n to AEP: name = Name of the AEP. status = created | created,modified | deleted. l3_dom = Name of the L3 Domain to be hooked to t
status

ain to AEP: name = Name of the AEP. Status = created | created,modified | deleted. l3_dom = Name of the L3 Domain to be hooked to
status

me of the vPC. id = vPC ID as an integer. status = created | created,modified | deleted. sw1 = Node 1 in integer (i.e. 101). sw2 = Node
sw1 sw2 status

ame = Name of the Switch Profile. status = created | created,modified | deleted. sw1 = Node 1 in integer (i.e. 101). sw2 = Node 2 in int

420515374.xls
6

guard. Recover = true or false.

(no need to prepend) "vlan-". End = VL ID in number. Range_mode = static


or deleted.

modified | deleted (Note: This should be 'deleted' if no infra VLAN is neede or


nal) created | created,modified | deleted (Note: This should be 'deleted' if no
ame of the port-channel policy. override_cdp= (optional) Name of the cdp
dp policy

vlan_pool = Name of the VLAN pool to associate to the L3 Out

vlan_pool = Name of the VLAN pool to associate to the Physical Domain

3_dom = Name of the L3 Domain to be hooked to the AEP

l3_dom = Name of the L3 Domain to be hooked to the AEP.

ted. sw1 = Node 1 in integer (i.e. 101). sw2 = Node 2 in integer (i.e. 102)

w1 = Node 1 in integer (i.e. 101). sw2 = Node 2 in integer (i.e. 102).

420515374.xls
7

Switch Pair Profiles: name = Name of th


name sw1
sw_pro_vpc

Single Switch Profiles:


name sw1
sw_pro_single

Interface Policy Groups (vPC): name = Name of


of LLDP Policy. cdp = Name of C
name lldp
int_pol_grp_vpc

Interface Policy Groups (access): name = Nam

name lldp
int_pol_grp_access

Interface Policy Groups (breakout m

name breakout_map
int_pol_grp_brkout

Inter
name status
int_profile

Interface Selector: name = Name of the Inte


accportgrp | accbundle | brkoutportgrp (Note: a
apply. mod_start = Starting mod as an integer (a
name port_name
int_selector

Interface Sub Selector: name = Name of the In


accportgrp | accbundle | brkoutportgrp (Note: a
apply. mod_start = Starting mod as an integer (a
name port_name
int_sub_selector

Interface Sub Selector: name = Name of the In


accportgrp | accbundle (Note: accportgrp = Acc
always 1) port = P
420515374.xls
8

sw2 status

Switch Profiles: name = Name of the Switch Profile. status = created | created,modified | deleted. sw1 = Node 1 in integer (i.e. 101).
status

name = Name of the Interface Policy Group. status = created | created,modified | deleted. lag_type = node | link (Note: Node = vPC, L
cdp = Name of CDP Policy. aep = Name of AEP. mcp = Name of MCP Policy. lag = Name of Port-Channel Policy. link = Name of Link
cdp aep mcp link status lag lag_type

ss): name = Name of the Interface Policy Group. status = created | created,modified | deleted. lldp = Name of LLDP Policy. cdp = Nam
Name of AEP. mcp = Name of MCP Policy. Link = Name of Link Policy
cdp aep mcp link status ppv storm

oups (breakout map): name = Name of the Interface Policy Group. breakout_map = 10g-4x | 25g-4x status = created | created,modifie

status

Interface Profile: name = Name of the Interface Profile. Status = created | created,modified | deleted.

Name of the Interface Selector. status = created | created,modified | deleted. port_name = Name of the port selector in the Interface P
tportgrp (Note: accportgrp = Access Port accbundle = vPC or Port Channel brkoutportgrp = Break Out Port Group). pol_group = Name
d as an integer (almost always 1). mod_end = Ending mod as an integer (almost always 1). port_start = Starting port as an integer. po
an integer.
port_type pol_group mod_start mod_end port_start port_end status

e = Name of the Interface Selector. status = created | created,modified | deleted. port_name = Name of the port selector in the Interfac
tportgrp (Note: accportgrp = Access Port accbundle = vPC or Port Channel brkoutportgrp = Break Out Port Group). pol_group = Name
d as an integer (almost always 1). mod_end = Ending mod as an integer (almost always 1). port_start = Starting port as an integer. po
an integer.
port sub_start sub_end status

e = Name of the Interface Selector. status = created | created,modified | deleted. port_name = Name of the port selector in the Interfac
accportgrp = Access Port accbundle = vPC or Port Channel). pol_group = Name of the Policy Group to apply. mod (Optional) = Mod
lways 1) port = Parent port as an integer. sub_start = Starting sub port as an integer sub_end = Ending sub port as an integer.
420515374.xls
9

dified | deleted. sw1 = Node 1 in integer (i.e. 101).

deleted. lag_type = node | link (Note: Node = vPC, Link = PC). lldp = Name
= Name of Port-Channel Policy. link = Name of Link Policy.
ppv storm

d | deleted. lldp = Name of LLDP Policy. cdp = Name of CDP Policy. aep =
me of Link Policy

= 10g-4x | 25g-4x status = created | created,modified | deleted.

ted | created,modified | deleted.

_name = Name of the port selector in the Interface Profile. port_type =


ortgrp = Break Out Port Group). pol_group = Name of the Policy Group to
ways 1). port_start = Starting port as an integer. port_end = Ending port as

ort_name = Name of the port selector in the Interface Profile. port_type =


ortgrp = Break Out Port Group). pol_group = Name of the Policy Group to
ways 1). port_start = Starting port as an integer. port_end = Ending port as

ort_name = Name of the port selector in the Interface Profile. port_type =


of the Policy Group to apply. mod (Optional) = Module an integer (almost
er sub_end = Ending sub port as an integer.
420515374.xls
10

Interface Sub Selector: name = Name of the In


accportgrp | accbundle (Note: accportgrp = Acc
always 1) port = P

name port_name
int_sub_selector_individual

Interface Profile: name = Name of the


name int_profile
int_selector_sw_profile

Inter
name fex_pol_grp
fex_profile

Interface Selector: name = Name of the Inte


accportgrp | accbundle (Note: accportgrp = Acce
always 1). mod_end
name port_name
fex_int_profile

name port_name
fex_leaf_profile

420515374.xls
11

port_type port sub_start sub_end pol_group status

me = Name of the Interface Profile. status =created | created,modified | deleted. int_profile = Name of the Interface Profile to hook to S
status

Interface Profile: name = Name of the Interface Profile. Status = created | created,modified | deleted.
status

Name of the Interface Selector. status = created | created,modified | deleted. port_name = Name of the port selector in the Interface P
accportgrp = Access Port accbundle = vPC or Port Channel). pol_group = Name of the Policy Group to apply. mod_start = Starting mo
mod_end = Ending mod as an integer (almost always 1). port_start = Starting port as an integer. port_end = Ending port as an intege
port_type pol_group fex_id mod_start mod_end port_start port_end

Fex To Leaf Profile Binding: name = Name of the Leaf Profile (Regular one)
fex_id fex_prof fex_pol_grp mod_start mod_end port_start port_end

420515374.xls
12

_profile = Name of the Interface Profile to hook to Switch Selector

ted | created,modified | deleted.

_name = Name of the port selector in the Interface Profile. port_type =


the Policy Group to apply. mod_start = Starting mod as an integer (almost
t as an integer. port_end = Ending port as an integer.
status

ofile (Regular one)


status

420515374.xls
Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward. Column
(CDP for example) reads all the rows in column A looking for the term/string 'cdp' -- once it finds this
once for each row that contains the string. This shoudl be "relatively" efficient, but I'm sure could be im
B and color coded red or green based on the return. Note that every time the script is ran, as the w
column, as well as completely destroy formattin

Note that before each functional section, notes are

One final note, you mus

Function Script Status Fault Status Reserved Data/Variables/Configs -------------

name
tenant

VRF Sec

tn_name
vrf

tn_name
vz_any_provide

tn_name
vz_any_consume

tn_name
prefgrp

BD Section: tn_name = The name of the


of associated VRF. l3-out = Name of ass
BD Section: tn_name = The name of the
of associated VRF. l3-out = Name of ass

tn_name
bd

BD to VRF Section: tn_name = The nam

tn_name
bd_vrf

Filter Section: tn_name = The name o


integer. src_end = unspecified | p

tn_name
bd_subnet

tn_name
bd_l3_out

Filter Section: tn_name = The name of th


as an integer. src_end = unspecified |

tn_name
filter

Contract Section: tn_name = The nam

tn_name
contract

Applic

tn_name
app_profile

EPG Section: tn_name = The n

tn_name
epg
EPG Preffered

tn_name
epg_prfgrp

EPG Physical Domian Mapping Section

tn_name
epg_phys_dom

EPG VMM Domian Mapping Section

tn_name
epg_vmm_dom

EPG Provide Contract Section: tn_name = T

tn_name
provide_contract

EPG Consume Contract Section: tn_name =

tn_name
consume_contract

Static Path Bindings vPC:


vPC (node ID) as an integer.

tn_name
static_path_vpc

Static Path Bindings Access: tn_name =


i
tn_name
static_path_access

tn_name
static_path
DHCP Relay Section (At this time this on
Tenant containing the L3 out used

tn_name
dhcp_relay

DHCP Relay Section: tn_name = name of tenant, bd_name = n

tn_name
dhcp_relay_tn

DHCP Relay Section: tn_name = The

tn_name
dhcp_label

FEX Static Path Bindings Access: tn_na


an integer (i.e. 1 or 2
tn_name
fex_static_path
y straightforward. Column A has many strings that are basically mapped back to specific functions in the Python sc
g 'cdp' -- once it finds this string it loads up the variables to the right of the keyword and loads those up into the js
t, but I'm sure could be improved upon. For each row, there is some error handling that catches the HTTP status
e the script is ran, as the workbook is loaded from xlrd -> xlwt the formatting is lost (but not cell contents) so re-run
mpletely destroy formatting in this document. Please save a "master" file and then a second to run the script

nctional section, notes are written above in order to document what variables are allowed (without throwing HTTP

One final note, you must use XLS format (older excel format) for the read/write in Python to work.

iables/Configs --------------------------------------------------------------------------------------------------------------------------------

Tenant Section: Name = The name of the Tenant. Status = created | created,modi

status

VRF Section: tn_name = The name of the Tenant. name = Name of the VRF. enforce = enforced | unenforced. s

name enforce status

VRF Section:

name contract status

VRF Section:

name contract status

Preferred Group Section: tn_name = The name of the Tenant name = Name of the VRF pref

name prefgrp

n: tn_name = The name of the Tenant. name = Name of the BD. arp = yes | no. mdest = bd-flood | drop | encap-flood. mcast = flood |
ted VRF. l3-out = Name of associated L3-Out. subnet = Subnet in CIDR: ex: 1.1.1.1/24. scope = public | private | shared | public,share
yes | no
n: tn_name = The name of the Tenant. name = Name of the BD. arp = yes | no. mdest = bd-flood | drop | encap-flood. mcast = flood |
ted VRF. l3-out = Name of associated L3-Out. subnet = Subnet in CIDR: ex: 1.1.1.1/24. scope = public | private | shared | public,share
yes | no
name arp mdest mcast unicast

F Section: tn_name = The name of the Tenant. name = Name of the BD. vrf = Name of associated VRF. NOTE: Status is always "crea
other vrf is selected upon initial configuration
name vrf

ection: tn_name = The name of the Tenant. name = Name of the Filter. dst_start = unspecified | port number as an integer. dst_end =
eger. src_end = unspecified | port number as an integer. ethertype = commonly IP or unspecified. protocol = if IP commonly tcp | udp |
created,modified | deleted.
name scope subnet preferred status

BD L3 Out

name status l3_out

ion: tn_name = The name of the Tenant. name = Name of the Filter. dst_start = unspecified | port number as an integer. dst_end = un
nteger. src_end = unspecified | port number as an integer. ethertype = commonly IP or unspecified. protocol = if IP commonly tcp | ud
created | created,modified | deleted.
name dst_start dst_end src_start src_end

ct Section: tn_name = The name of the Tenant. name = Name of the Contract. scope = context | global | tenant | application-profile. su
reverse_filter = yes | no. status = created | created,modified | deleted
name scope subject filter reverse_filter

Application Profile Section: tn_name = The name of the Tenant. name = Name of the Application Profile. statu

name status

EPG Section: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. name = Name of the EPG. bd = Nam

ap_name name bd status


EPG Preffered Group Section: tn_name = The name of the Tenant ap_name = Name of parent Application Profile nam

ap_name name prfgrp

sical Domian Mapping Section: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name = Nam
immediate. resolve = lazy | immediate | on-demand. status = created | created,mod
ap_name epg_name phys_dom deploy resolve

VMM Domian Mapping Section: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name = Nam
immediate. resolve = lazy | immediate | on-demand. status = created | created,mod
ap_name epg_name vmm_dom deploy resolve

Contract Section: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name = Name of the EPG.

ap_name epg_name contract status

Contract Section: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name = Name of the EPG

ap_name epg_name contract status

ath Bindings vPC: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name
de ID) as an integer. vpc = Name of the vPC. encap = Encapsulation VLAN ID as an integer. deploy = lazy | immediate.
(trunk)
ap_name epg_name pod sw1 sw2

th Bindings Access: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name = Name of the EP
integer (i.e. 1 or 2). encap = Encapsulation VLAN ID as an integer. deploy = lazy | immediate. status = c
ap_name epg_name pod sw1 port

Static Path Bindings: mode = native| regular (dot1p, trunk)

ap_name epg_name pod sw1 port


elay Section (At this time this only supports external DHCP servers: tn_name = The name of the Tenant. relay_name
nant containing the L3 out used to reach DHCP server. l3_out = Name of the L3 out used to reach DHCP server.
created,modified | deleted.
relay_name dhcp_ip l3_tn l3_out l3_network

= name of tenant, bd_name = name of Bridge domain to apply label to, relay_name = name of the DHCP policy to use in the label, scop

relay_name status dhcp_ip dhcp_tn_name dhcp_ap_name

Relay Section: tn_name = The name of the Tenant. bd_name = Name of BD to deploy DHCP label to. relay_name = Name of the DHC
(optional) infra | tenant, defaults to tenant.
bd_name relay_name scope status

c Path Bindings Access: tn_name = The name of the Tenant. ap_name = Name of parent Application Profile. epg_name = Name of the
an integer (i.e. 1 or 2). encap = Encapsulation VLAN ID as an integer. deploy = lazy | immediate. mode = native (dot1p)|regu
ap_name epg_name pod sw1 fex_id
specific functions in the Python script. The script loads this workbook and then for each section
word and loads those up into the json payload that gets sent to the APIC. The function will do this
ling that catches the HTTP status code returned by the APIC -- that code is then input into columb
ost (but not cell contents) so re-running the script will re-color code (as appropriate) the status
d then a second to run the script against.

e allowed (without throwing HTTP 400 codes).

e in Python to work.

------------------------------------------------------------------------------------------->

Tenant. Status = created | created,modified | deleted.

VRF. enforce = enforced | unenforced. status = created | created,modified | deleted

VRF Section:

VRF Section:

e Tenant name = Name of the VRF prefgrp = disabled | enabled

ood | drop | encap-flood. mcast = flood | opt-flood. unicast = yes | no. unk_unicast = proxy | flood. vrf (DEPRECATED)= Name
e = public | private | shared | public,shared | private,shared. status = created | created,modified | deleted. multicast (Optional)=
yes | no
unk_unicast vrf status limitlearn multicast

ated VRF. NOTE: Status is always "created,modified" because system always creates relationship to common even if no
selected upon initial configuration

d | port number as an integer. dst_end = unspecified | port number as an integer. src_start = unspecified | port number as an
ed. protocol = if IP commonly tcp | udp | unspecified (Note: ACI is case sensitive, use all lower case!). status = created |
reated,modified | deleted.

BD L3 Out

port number as an integer. dst_end = unspecified | port number as an integer. src_start = unspecified | port number
cified. protocol = if IP commonly tcp | udp | unspecified (Note: ACI is case sensitive, use all lower case!). status =
eated,modified | deleted.
ethertype protocol status

xt | global | tenant | application-profile. subject = Name of the Subject. filter = Name of the Filter being referenced.
tus = created | created,modified | deleted.
status

e = Name of the Application Profile. status = created | created,modified | deleted.

file. name = Name of the EPG. bd = Name of associated BD. status = created | created,modified | deleted.
= Name of parent Application Profile name = Name of the EPG prfgrp = include | exclude

ent Application Profile. epg_name = Name of the EPG. phys_dom = Name of the Physical Domain. deploy = lazy |
-demand. status = created | created,modified | deleted.
status

ent Application Profile. epg_name = Name of the EPG. vmm_dom = Name of the VMM Domain. deploy = lazy |
-demand. status = created | created,modified | deleted.
status

Profile. epg_name = Name of the EPG. contract = Name of the Contract. status = created | created,modified | deleted.

n Profile. epg_name = Name of the EPG. contract = Name of the Contract. status = created | created,modified | deleted.

n Profile. epg_name = Name of the EPG. sw1 = Switch 1 of the vPC (node ID) as an integer. sw2 = Switch 2 of the
deploy = lazy | immediate. status = created | created,modified | deleted. mode (optional) = native (dot1p) | regular
(trunk)
vpc encap deploy status mode

on Profile. epg_name = Name of the EPG. sw1 = Switch 1 of the vPC (node ID) as an integer. port = Port ID as an
er. deploy = lazy | immediate. status = created | created,modified | deleted.
encap deploy status

mode = native| regular (dot1p, trunk)

encap deploy mode status


e Tenant. relay_name = Name of the DHCP Label/Provider. dhcp_ip = IP of the DHCP server. l3_tn = Name of the
each DHCP server. l3_network = Name of the L3 out Network used to reach DHCP server. status = created |
d,modified | deleted.
status

the DHCP policy to use in the label, scope = infra or tenant (default is tenant, you can leave this blank) status = created,modified | delet

dhcp_epg_name

label to. relay_name = Name of the DHCP Label/Provider. status = created | created,modified | deleted. scope =
| tenant, defaults to tenant.

ication Profile. epg_name = Name of the EPG. sw1 = Switch 1 of the vPC (node ID) as an integer. port = Port ID as
| immediate. mode = native (dot1p)|regular(trunk) status = created | created,modified | deleted.
port encap deploy mode status
DEPRECATED)= Name
multicast (Optional)=
o common even if no

| port number as an
atus = created |
Hidden Column
DN

tn-/ctx-

tn-/ctx-
tn-/BD-

tn-/BD-

tn-/BD-

tn-/BD-

tn-/ap-/epg-
tn-/ap-/epg-
Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward. Column A ha
loads this workbook and then for each section (CDP for example) reads all the rows in column A looking
and loads those up into the json payload that gets sent to the APIC. The function will do this once for ea
upon. For each row, there is some error handling that catches the HTTP status code returned by the AP
that every time the script is ran, as the workbook is loaded from xlrd -> xlwt the formatting is lost (but not
as completely destroy formatting in this document. Please save a

Note that before each functional section, notes are written above in order to do

One final note, you must use XLS format (older exc

Function Script Stat Fault StatuReservedData/Variables/Configs ------------------------------------------

Define L3 Out Section: tn_name = Name of the Tenant. name = Th

tn_name name domain


l3_out

Enable/Disable OSPF Section: tn_name = Name of the Tenant. na


| nssa. vrf = Nam
tn_name name area
ospf

Enable/Disable BGP Section: tn_name = Name of the T

tn_name name status


bgp

Node Profile Section: name = The name of the L3-Out.


integer. sw1_loop = IP of node1 loopback as a dotted decimal (n

tn_name name pod


node_profile

tn_name name pod


static_routes
Routed Interface Section: tn_name = Name of the Tenant. name
Node ID of the switch as an integer. port = Port number as an in
deleted. stat
tn_name name pod
routed_ints

Routed Sub-Interface Section: name = The name of the L3-Out. n


integer. port = Port number as an integer. vlan = VLAN ID as an i
deleted of the Interface
tn_name name pod
routed_sub_ints

SVI Section: tn_name = Name of the Tenant. name = The name o


an integer. sw2 = Switch-2 ID of the switch as an integer. sw1_ip =
vPC. int_profile_status = created | cre
tn_name name pod
svi

SVI Section: tn_name = Name of the Tenant. name = The name o


an integer. sw2 = Switch-2 ID of the switch as an integer. sw1_ip =
vPC. int_profile_status = created | cre
tn_name name pod
svi_pc

tn_name name pod


svi_vip

Network EPG Section: tn_name = Name of the Tenant. name =


created | created,modified | deleted
tn_name name epg_name
network_epg

OSPF Interface Policy Section: pol_name = The name of the Inte


p2p | bcas
tn_name pol_name hello
ospf_int_pol
Deploy OSPF Interface Policy (to L3 Out Interface Profile) Section:
= Name of the Interface Profile. pol_type = ospf | eigrp |
tn_name name node_name
deploy_int_pol

Configure BGP Peers (Loopback source) Section: tn_name = Nam


in dotted decimal. local_asn = Local BGP ASN as a
tn_name name node_name
bgp_peer_loopback

Configure BGP Peers (SVI source) Section: tn_name = Name of th


as an integer. sw1 = Node ID of the second switch as an integer.
integer. remote_asn = Re
tn_name name pod
bgp_peer_svi

Configure BGP Peers (SVI source) Section: tn_name = Name of th


as an integer. sw1 = Node ID of the second switch as an integer.
integer. remote_asn = Re
tn_name name node_name
bgp_peer_interface

tn_name name epg_name


l3_provide_contract

tn_name name epg_name


l3_consume_contract

tn_name vrf status


vrf_enable_pim
tn_name vrf rp
vrf_pim_static_rp

tn_name l3_out status


l3_out_pim
ightforward. Column A has many strings that are basically mapped back to specific functions in the Python script. Th
ows in column A looking for the term/string 'cdp' -- once it finds this string it loads up the variables to the right of the k
on will do this once for each row that contains the string. This shoudl be "relatively" efficient, but I'm sure could be im
s code returned by the APIC -- that code is then input into columb B and color coded red or green based on the return
formatting is lost (but not cell contents) so re-running the script will re-color code (as appropriate) the status column,
ocument. Please save a "master" file and then a second to run the script against.

ritten above in order to document what variables are allowed (without throwing HTTP 400 codes).

se XLS format (older excel format) for the read/write in Python to work.

----------------------------------------------------------------------------------------------------------------------------------------------------------

ame of the Tenant. name = The name of the L3-Out. domain = Name of the External L3 Domain. vrf = Name of associated VRF. status =
created,modified | deleted.
vrf status

ame = Name of the Tenant. name = The name of the L3-Out. area = backbone | area id as an integer | area id as dotted decimal. area_type
| nssa. vrf = Name of associated VRF. status = created | created,modified | deleted.
area_type status

on: tn_name = Name of the Tenant. name = The name of the L3-Out. status = created | created,modified | deleted (of the BGP process).

name of the L3-Out. node_name = Name of the Node Profile. sw1 = Node ID of first switch as an integer. sw2 = Node ID of second switch
opback as a dotted decimal (no mask). sw2_loop = IP of node2 loopback as a dotted decimal (no mask). loopback = yes | no.
created,modified | deleted.
node_name sw1 sw2 sw1_loop sw2_loop loopback status

Static Routes Section:

node_name sw prefix next_hop status


= Name of the Tenant. name = The name of the L3-Out. node_name = Name of the Node Profile. int_profile = Name of the Interface Pro
r. port = Port number as an integer. ip = IP of the interface in dotted decimal format (i.e. 1.1.1.1). int_profile_status = created | created,mo
deleted. status = created | created,modified | deleted (of the Interface itself).
node_name int_profile sw port ip int_profile_sta status

e = The name of the L3-Out. node_name = Name of the Node Profile. int_profile = Name of the Interface Profile. sw = Node ID of the swit
eger. vlan = VLAN ID as an integer. ip = IP of the interface in dotted decimal format (i.e. 1.1.1.1). int_profile_status = created | created,
deleted of the Interface Profile. status = created | created,modified | deleted of the Interface itself.
node_name int_profile sw port vlan ip int_profile_status

e Tenant. name = The name of the L3-Out. node_name = Name of the Node Profile. int_profile = Name of the Interface Profile. sw1 = Sw
witch as an integer. sw1_ip = IP of Switch-1 in dotted-decimal. sw2_ip = IP of Switch-2 in dotted-decimal. vlan = VLAN ID as an integer. vp
_profile_status = created | created,modified | deleted of the Int Pro. status = created | created,modified | deleted of the Interface itself.
node_name int_profile sw1 sw2 sw1_ip sw2_ip vlan

e Tenant. name = The name of the L3-Out. node_name = Name of the Node Profile. int_profile = Name of the Interface Profile. sw1 = Sw
witch as an integer. sw1_ip = IP of Switch-1 in dotted-decimal. sw2_ip = IP of Switch-2 in dotted-decimal. vlan = VLAN ID as an integer. vp
_profile_status = created | created,modified | deleted of the Int Pro. status = created | created,modified | deleted of the Interface itself.
node_name int_profile sw1 ip vip vlan pc

SVI VIP Section:

node_name int_profile sw1 sw2 vpc vip status

= Name of the Tenant. name = The name of the L3-Out. epg_name = Name of the Prefix Based EPG. subnet = Subent in CIDR format. st
ed | created,modified | deleted of the EPG itself. subnet_status = created | created,modified | deleted of the subnet.
subnet status subnet_status

_name = The name of the Interface Policy. hello = hello interval in seconds as an integer. dead = dead interval in seconds as an integer. ne
p2p | bcast | unspecified. status = created | created,modified | deleted.
dead net_type status
Out Interface Profile) Section: tn_name = Name of the Tenant. name = The name of the L3 Out. node_name = Name of the Node Profile. i
rofile. pol_type = ospf | eigrp | bgp. pol_name = Name of the Interface Policy to be applied. status = created | created,modified | deleted.
int_profile pol_type pol_name status

rce) Section: tn_name = Name of the Tenant. name = The name of the L3 Out. node_name = Name of the Node Profile. peer = BGP Pee
al_asn = Local BGP ASN as an integer. remote_asn = Remote BGP ASN as an integer. status = created | created,modified | deleted.
peer local_asn remote_asn status

ection: tn_name = Name of the Tenant. name = The name of the L3 Out. node_name = Name of the Node Profile. sw1 = Node ID of the f
second switch as an integer. vpc = Name of the associated vPC. peer = BGP Peer address in dotted decimal. local_asn = Local BGP AS
integer. remote_asn = Remote BGP ASN as an integer. status = created | created,modified | deleted.
node_name int_profile sw1 sw2 vpc peer local_asn

ection: tn_name = Name of the Tenant. name = The name of the L3 Out. node_name = Name of the Node Profile. sw1 = Node ID of the f
second switch as an integer. vpc = Name of the associated vPC. peer = BGP Peer address in dotted decimal. local_asn = Local BGP AS
integer. remote_asn = Remote BGP ASN as an integer. status = created | created,modified | deleted.
int_profile pod sw1 port peer local_asn remote_asn

L3 Out Provide Contract:

contract status

L3 Out Consume Contract:

contract status

Enable PIM VRF


Static RP VRF

status

Enable PIM L3 Out


ns in the Python script. The script
ariables to the right of the keyword
nt, but I'm sure could be improved
r green based on the return. Note
opriate) the status column, as well

codes).

-----------------------------------------------

me of associated VRF. status = created |

id as dotted decimal. area_type = regular

deleted (of the BGP process).

sw2 = Node ID of second switch as an


oopback = yes | no. status = created |
file = Name of the Interface Profile. sw =
e_status = created | created,modified |

Profile. sw = Node ID of the switch as an


file_status = created | created,modified |

status

the Interface Profile. sw1 = Switch-1 ID of the switch as


vlan = VLAN ID as an integer. vpc = Name of associated
eleted of the Interface itself.
vpc int_profile_stat status

the Interface Profile. sw1 = Switch-1 ID of the switch as


vlan = VLAN ID as an integer. vpc = Name of associated
eleted of the Interface itself.
status

net = Subent in CIDR format. status =


e subnet.

rval in seconds as an integer. net_type =


me = Name of the Node Profile. int_profile
ed | created,modified | deleted.

e Node Profile. peer = BGP Peer address


created,modified | deleted.

e Profile. sw1 = Node ID of the first switch


mal. local_asn = Local BGP ASN as an

remote_asn status

e Profile. sw1 = Node ID of the first switch


mal. local_asn = Local BGP ASN as an

status
Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward. Column A ha
loads this workbook and then for each section (CDP for example) reads all the rows in column A looking
and loads those up into the json payload that gets sent to the APIC. The function will do this once for ea
upon. For each row, there is some error handling that catches the HTTP status code returned by the AP
that every time the script is ran, as the workbook is loaded from xlrd -> xlwt the formatting is lost (but not
as completely destroy formatting in this document. Please save a

Note that before each functional section, notes are written above in order to do

One final note, you must use XLS format (older exc

Function Script Stat Fault StatuReservedData/Variables/Configs ------------------------------------------

name host vl_pool


vcenter

name aep status


vcenter_aep

name status dom_type


vswitch_pol
ightforward. Column A has many strings that are basically mapped back to specific functions in the Python script. Th
ows in column A looking for the term/string 'cdp' -- once it finds this string it loads up the variables to the right of the k
on will do this once for each row that contains the string. This shoudl be "relatively" efficient, but I'm sure could be im
s code returned by the APIC -- that code is then input into columb B and color coded red or green based on the return
formatting is lost (but not cell contents) so re-running the script will re-color code (as appropriate) the status column,
ocument. Please save a "master" file and then a second to run the script against.

ritten above in order to document what variables are allowed (without throwing HTTP 400 codes).

se XLS format (older excel format) for the read/write in Python to work.

----------------------------------------------------------------------------------------------------------------------------------------------------------

Define VMM vCenter:

dc user pwd status

Define VMM vCenter:

Define vCenter VMM vSwitch Policy

cdp_pol lldp_pol
ns in the Python script. The script
ariables to the right of the keyword
nt, but I'm sure could be improved
r green based on the return. Note
opriate) the status column, as well

codes).

-----------------------------------------------
Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward. Column A ha
loads this workbook and then for each section (CDP for example) reads all the rows in column A looking
and loads those up into the json payload that gets sent to the APIC. The function will do this once for ea
upon. For each row, there is some error handling that catches the HTTP status code returned by the AP
that every time the script is ran, as the workbook is loaded from xlrd -> xlwt the formatting is lost (but not
as completely destroy formatting in this document. Please save a

Note that before each functional section, notes are written above in order to do

One final note, you must use XLS format (older exc

Function Script Stat Fault StatuReservedData/Variables/Configs ------------------------------------------

user status pwd


user

OOB Mgmt Address = x.x.x.x/x, Ga

address gateway id
oob_mgmt

name vlan status


inb_epg

name contract status


inb_epg_provide

name contract status


inb_epg_consume
INB Mgmt Address = x.x.x.x/x, Gat

address gateway id
inb_mgmt
ightforward. Column A has many strings that are basically mapped back to specific functions in the Python script. Th
ows in column A looking for the term/string 'cdp' -- once it finds this string it loads up the variables to the right of the k
on will do this once for each row that contains the string. This shoudl be "relatively" efficient, but I'm sure could be im
s code returned by the APIC -- that code is then input into columb B and color coded red or green based on the return
formatting is lost (but not cell contents) so re-running the script will re-color code (as appropriate) the status column,
ocument. Please save a "master" file and then a second to run the script against.

ritten above in order to document what variables are allowed (without throwing HTTP 400 codes).

se XLS format (older excel format) for the read/write in Python to work.

----------------------------------------------------------------------------------------------------------------------------------------------------------

Define Users

Mgmt Address = x.x.x.x/x, Gateway = x.x.x.x, id=100-199, Status = created, created,modified, or deleted, Pod = 1-4

status pod

in-band EPG

in-band EPG provide contract

in-band EPG consume contract


Mgmt Address = x.x.x.x/x, Gateway = x.x.x.x, id=100-199, Status = created, created,modified, or deleted, Pod = 1-4

status inb_epg_nam pod


ns in the Python script. The script
ariables to the right of the keyword
nt, but I'm sure could be improved
r green based on the return. Note
opriate) the status column, as well

codes).

-----------------------------------------------

Pod = 1-4
od = 1-4
Welcome to the ACI Configurator Workbook. This workbook is really pretty straightforward. Column A ha
this workbook and then for each section (CDP for example) reads all the rows in column A looking for the
those up into the json payload that gets sent to the APIC. The function will do this once for each row tha
row, there is some error handling that catches the HTTP status code returned by the APIC -- that code is
is ran, as the workbook is loaded from xlrd -> xlwt the formatting is lost (but not cell contents) so re-runnin
in this document. Please save a "master" file

Note that before each functional section, notes are written above in order to

One final note, you must use XLS format (older e

Function Script Stat Fault StatuReservedData/Variables/Configs ------------------------------------------

name cdp
spine_pol_grp

name port_name
spine_int_pro

name spine_sel_name
spine_sw_pro

pod_id tep_pool
init_pod

conn_id name
create_mpod
pod1_spine1 pod1_spine1_int1
mpod_l3_out
lly pretty straightforward. Column A has many strings that are basically mapped back to specific functions in the Pyth
all the rows in column A looking for the term/string 'cdp' -- once it finds this string it loads up the variables to the right
ction will do this once for each row that contains the string. This shoudl be "relatively" efficient, but I'm sure could be
e returned by the APIC -- that code is then input into columb B and color coded red or green based on the return. No
ost (but not cell contents) so re-running the script will re-color code (as appropriate) the status column, as well as co
cument. Please save a "master" file and then a second to run the script against.

on, notes are written above in order to document what variables are allowed (without throwing HTTP 400 codes).

note, you must use XLS format (older excel format) for the read/write in Python to work.

nfigs --------------------------------------------------------------------------------------------------------------------------------------------------

aep int status

mod_start mod_end port_start port_end pol_grp status

id int_sel status

status

pod1_dtep pod2_dtep subnet1 subnet2 status rt route_prof_name


pod1_spine1_int1_ip pod1_spine1_rpod2_spine1 pod2_spine1_pod2_spine1_in pod2_spine1_rtrstatus
c functions in the Python script. The script loads
e variables to the right of the keyword and loads
but I'm sure could be improved upon. For each
ased on the return. Note that every time the script
column, as well as completely destroy formatting

HTTP 400 codes).

---------------------------------------------------------->

ute_prof_name

Potrebbero piacerti anche