Creating VNIC templates

advertisement
Developer Sessions –
Introduction into
Automating Cisco UCS
Dr. Adolf Hohl (FCI Lead EMEA)
NetApp Confidential - Internal Use Only
1
Developer Sessions
 What is it about?
– Integration
– Automation
– Customization
Improving IT and
operation at customer
 For Whom?
– Consultants, integration engineers, architects
 How?
Apps
– Use the glue: Leverage NetApp APIs to do
better integrations at customers
HyperVisor
Storage
– Use case centric approach
 When?
– Tuesday 15:00-16:00 CET
– https://communities.netapp.com/community/interfaces_and_tools/
developer/developer-sessions
NetApp Confidential - Internal Use Only
2
Schedule May/June
Date (cal.
entry)
15.05.2012
22.05.2012
29.05.2012
Date (cal.
entry)
Topic
Abstract and Takeaway
This session is an introduction to the NetApp Powershell Toolkit. It show the
feature richness and the simplicity of use. You learn how to install the toolkit,
connect to controllers and get an overview on its features.
This session is an introduction to the NetApp Manageability SDK in its latest
NetApp Manageability release. You learn the coverage to the SDK and get an overview on its features.
SDK Introduction
You learn how to install it and start rapid prototyping with automatic code
generation.
Use Case: Automated
This session is about automated snapshot archiving leveraging NetApp APIs. You
Snapshot Archiving
learn how to organize snapshot archives from different sources.
using APIs
NetApp Powershell
Toolkit Intro
Topic
Abstract and Takeaway
Programming
Language
Powershell
Various
Perl
Programming
Language
05.06.2012
Introduction into
Automating Cisco
UCS
This session is an introduction to the Cisco UCSPS library to automate Cisco UCS
components in a FlexPod. You learn how to install, connect and use basic
Powershell
commandlets.
12.06.2012
Use Case:
This session is about extracting performance data of the storage infrastructure and
Performance Advisor making it available in structured SQL database for further processing. You learn
Perl
Data Extraction
how to parse performance data and extract relevant counters.
19.06.2012
Within this session the Cisco UCSPS library is used to create VLANs according to
Use Case: Creating
the specification of the FlexPod reference architecture. You learn how to query for
VLANs on Cisco UCS
existing VLANs, define new VLANs and register them in a VLAN template.
26.06.2012
Use Case: DB
This session is about a backup workflow for a database which includes a verification
Backup Workflow with phase before treating the backup as valid. You learn the basic structure of a backup Perl
DB Verification
workflow and how to embed any postprocessing steps.
NetApp Confidential - Internal Use Only
Powershell
3
UCS Automation –
VLANs, VNIC &
SP templates
NetApp Confidential - Internal Use Only
4
Todays Session Ingredients
 UCS Emulator
– http://developer.cisco.com/web/unifiedcomputin
g/ucsemulatordownload
 UCS PowerTool for UCSM
– http://developer.cisco.com/web/unifiedcomputin
g/pshell-download
 Flexpod Provisioning Sample Scripts
– Certain fragments
NetApp Confidential - Internal Use Only
6
Session Takeaway
 Get familiar with:
– Creating VLANs
– Creating VNIC templates
– Creating Service Profile templates
 Navigate in sample Flexpod Provisioning
Scripts and start to innovate
NetApp Confidential - Internal Use Only
7
VLANs
Create a VLAN in UCSM
NetApp Confidential - Internal Use Only
8
VLANs in FlexPod Stack
 Implementing different trust domains:
– Storage: vfiler
– Network: VLANs
 Multiple VLANs defined for infrastructure (see
implementation guide)
 VLANs for customer, each customer gets e.g.:
– Frontend VLAN: Access to the hosted services
– Storage VLAN: Access to storage
– Management VLAN
NetApp Confidential - Internal Use Only
9
VLANs in the entire Stack
U
U
Po13
Po14
INPUT: vlan.id/.descr
PRE: Po10-Po14 exist, vlan.id does not exist on all Po10-Po14
POST: vlan.id enabled from storage (S) to Ucs (U).
INFO: storage vlan needs to be enabled everywhere. E.g. frontentaccess would only
go on Po10,13,14
For left and right Nexus Switch:
N
Po11
S
Po10
N
Po12
S
config t
vlan <vlan.id>
descr <vlan.descr>
forall <if> in {Po10, …, Po14}
int <if>
switchport trunk allowed vlan add <vlan.id>
exit
exit
NetApp Confidential - Internal Use Only
10
Infrastructure VLANs
 MGMT-VLAN
 NFS-VLAN
 vMotion-VLAN
 Pkt-Ctrl-VLAN
 VM-Traffic-VLAN
 Native-VLAN
##line 207 UCSpart1.ps1
$NAMES_TO_VLANS = @{
"MGMT-VLAN" = $config.Get_Item("<<var_global_mgmt_vlan_id>>");
"NFS-VLAN" = $config.Get_Item("<<var_global_nfs_vlan_id>>");
"vMotion-VLAN" = $config.Get_Item("<<var_global_vmotion_vlan_id>>");
"Pkt-Ctrl-VLAN" = $config.Get_Item("<<var_global_packet_control_vlan_id>>");
"VM-Traffic-VLAN" = $config.Get_Item("<<var_global_vm_traffic_vlan_id>>");
"Native-VLAN" = $config.Get_Item("<<var_global_native_vlan_id>>");}
NetApp Confidential - Internal Use Only
11
Creating them in bulk manner
 Iterate through associative array
 VLANs are not hierarchically organized in UCS
## input: $NAMES_TO_VLANS
## line 435 3_4_UCS.ps1
$fabricEthLan = New-Object Cisco.Ucs.FabricEthLan
$fabricEthLan.Dn = "fabric/lan"
foreach($item in $NAMES_TO_VLANS.GetEnumerator()) {
$vLanName = $item.Name
Write-Host "create vlan: $vLanName"
$result = Get-UcsVlan -FabricLanCloud $fabricEthLan -Name $vLanName -Ucs $ucsHandle
if(!$result) {
if($vlanName -eq "Native-VLAN") {
$native = "true"
} else {
$native = "false"
}
Add-UcsVlan -FabricLanCloud $fabricEthLan -Name $vLanName \\
-Id $item.Value -DefaultNet $native -Ucs $ucsHandle
} else {
Write-host "vlan $vLanName already exists, skipping"
}
}
NetApp Confidential - Internal Use Only
12
Missing Associations
 VLANs are there, but …
– Not enabled from fabric to blades
– Half way 
NetApp Confidential - Internal Use Only
13
VNIC Templates
Set of VLANs
Organization
Network Control Policy
VNIC Template
 Hierarchical element
 VNIC templates bundle network settings for
reusability
 In FlexPod infrastructure for each fabric a
VNIC template is created
NetApp Confidential - Internal Use Only
14
Creating VNIC templates
## line 487 3_4_UCS.ps1
foreach($switchId in $switchIds_a) {
$orgName = $organization.Name
$variable = "VNIC_TEMPLATE_" + $switchId + "_NAME"
$vNicTemplateName = Get-Variable $variable -ValueOnly
$vNicTemplateDescr = $vNicTemplateName + " description"
$variable= "MAC_POOL_" + $switchId + "_NAME"
$macPoolName = Get-Variable $variable -ValueOnly
$result = Get-UcsVnicTemplate -Org $organization -Name $vNicTemplateName -Ucs $ucsHandle
if($result) {
Write-Host "vNIC template $vNicTemplateName already exists in org $($ourOrg.Name), replacing"
Remove-UcsVnicTemplate -VnicTemplate $result -Ucs $ucsHandle -Force
}
$z = Add-UcsVnicTemplate -Org $rootOrg -Name $vNicTemplateName -IdentPoolName $macPoolName -Mtu 9000 \\
-NwCtrlPolicyName $NCP_NAME -SwitchId $switchId -TemplType "updating-template"
foreach($item in $NAMES_TO_VLANS.GetEnumerator()) {
#Add-UcsVnicInterface -VnicTemplate $z -Name $item.Name
if($item.Name -eq "Native-VLAN") {
$native = "true"
}
else {
$native = "false"
}
Add-UcsVnicInterface -VnicTemplate $z -Name $item.Name -DefaultNet $native
}
Get-UcsVnicTemplate -Org $organization -Name $vNicTemplateName -Ucs $ucsHandle
}
NetApp Confidential - Internal Use Only
15
Service Profile Templates
Set of VLANs
Organization
Network Control Policy
…
…
VNIC Template
Service Profile Template
Service Profile
Blade
 Hierarchical element
 Service Profile Templates reference the VNIC
templates (among other things)
 Reusable entity to create Service Profiles
 Line 1051 3_4_UCS.ps1
NetApp Confidential - Internal Use Only
16
Navigate in FlexPod
Provisioning Sample
Code
NetApp Confidential - Internal Use Only
17
FlexPod Provisioning Code Outline (I)
18
FlexPod Provisioning Code Outline (II)
• Automated Day 0 according TR 3939
• Aligned section by section strictly
MakeMyPod.ps1
Cabling + Enable IP
Communication
(via sshexec.jar)
3.7
3.2 NetApp FAS Part I
3.6
3.3 Nexus 5548 Part I
3.4
FAS(
Data Ontap
Powershell Toolkit
NEXUS(
)
Nexus Command Line
Interface (SSH)
UCS
UCS( Cisco
XML API )
3.8 VMWare Install
~8-12 minutes
(excluding zeroing disks)
TR3939
Continue on page 54
19
)
NetApp Confidential - Internal Use Only
20
Download