Download presentation
Presentation is loading. Please wait.
Published byHoward Weaver Modified over 9 years ago
1
Dr. Adolf Hohl (FCI Lead EMEA) Developer Sessions – Introduction into Automating Cisco UCS 1 NetApp Confidential - Internal Use Only
2
Developer Sessions What is it about? –Integration –Automation –Customization For Whom? –Consultants, integration engineers, architects How? –Use the glue: Leverage NetApp APIs to do better integrations at customers –Use case centric approach When? –Tuesday 15:00-16:00 CET –https://communities.netapp.com/community/interfaces_and_tools/ developer/developer-sessions 2 NetApp Confidential - Internal Use Only Improving IT and operation at customer Super Glue NMSDK Ingredients: Data OnTAP PowerShell Toolkit Apps HyperVisor Storage
3
Schedule May/June Date (cal. entry)Topic Abstract and TakeawayProgramming Language 15.05.2012 NetApp Powershell Toolkit Intro 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. Powershell 22.05.2012 NetApp Manageability SDK Introduction This session is an introduction to the NetApp Manageability SDK in its latest release. You learn the coverage to the SDK and get an overview on its features. You learn how to install it and start rapid prototyping with automatic code generation. Various 29.05.2012 Use Case: Automated Snapshot Archiving using APIs This session is about automated snapshot archiving leveraging NetApp APIs. You learn how to organize snapshot archives from different sources. Perl 3 NetApp Confidential - Internal Use Only Date (cal. entry)Topic Abstract and Takeaway 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 commandlets. Powershell 12.06.2012 Use Case: Performance Advisor Data Extraction This session is about extracting performance data of the storage infrastructure and making it available in structured SQL database for further processing. You learn how to parse performance data and extract relevant counters. Perl 19.06.2012 Use Case: Creating VLANs on Cisco UCS Within this session the Cisco UCSPS library is used to create VLANs according to the specification of the FlexPod reference architecture. You learn how to query for existing VLANs, define new VLANs and register them in a VLAN template. Powershell 26.06.20126.06.2012 Use Case: DB Backup Workflow with DB Verification This session is about a backup workflow for a database which includes a verification phase before treating the backup as valid. You learn the basic structure of a backup workflow and how to embed any postprocessing steps. Perl
4
UCS Automation – VLANs, VNIC & SP templates 4 NetApp Confidential - Internal Use Only
5
References There are couple of good sources in the net: Cisco Developer Network Blogs: e.g. J.Waldrops, others Here – Sample Flexpod Provisioning: https://communities.netapp.com/docs/DOC- 13143 https://communities.netapp.com/docs/DOC- 13143 https://communities.netapp.com/docs/DOC- 14711 5 NetApp Confidential - Internal Use Only
6
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 6 NetApp Confidential - Internal Use Only
7
Session Takeaway Get familiar with: –Creating VLANs –Creating VNIC templates –Creating Service Profile templates Navigate in sample Flexpod Provisioning Scripts and start to innovate 7 NetApp Confidential - Internal Use Only
8
Create a VLAN in UCSM 8 NetApp Confidential - Internal Use Only VLANs
9
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 9 NetApp Confidential - Internal Use Only
10
VLANs in the entire Stack 10 NetApp Confidential - Internal Use Only S S NN U U Po10 Po11 Po12 Po13Po14 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: config t vlan descr forall in {Po10, …, Po14} int switchport trunk allowed vlan add exit
11
Infrastructure VLANs MGMT-VLAN NFS-VLAN vMotion-VLAN Pkt-Ctrl-VLAN VM-Traffic-VLAN Native-VLAN 11 NetApp Confidential - Internal Use Only ##line 207 UCSpart1.ps1 $NAMES_TO_VLANS = @{ "MGMT-VLAN" = $config.Get_Item(" >"); "NFS-VLAN" = $config.Get_Item(" >"); "vMotion-VLAN" = $config.Get_Item(" >"); "Pkt-Ctrl-VLAN" = $config.Get_Item(" >"); "VM-Traffic-VLAN" = $config.Get_Item(" >"); "Native-VLAN" = $config.Get_Item(" >");}
12
Creating them in bulk manner Iterate through associative array VLANs are not hierarchically organized in UCS 12 NetApp Confidential - Internal Use Only ## 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" }
13
Missing Associations VLANs are there, but … –Not enabled from fabric to blades –Half way 13 NetApp Confidential - Internal Use Only
14
VNIC Templates Hierarchical element VNIC templates bundle network settings for reusability In FlexPod infrastructure for each fabric a VNIC template is created 14 NetApp Confidential - Internal Use Only VNIC Template Set of VLANsNetwork Control PolicyOrganization
15
Creating VNIC templates 15 NetApp Confidential - Internal Use Only ## 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 }
16
Service Profile Templates Hierarchical element Service Profile Templates reference the VNIC templates (among other things) Reusable entity to create Service Profiles Line 1051 3_4_UCS.ps1 16 NetApp Confidential - Internal Use Only VNIC Template Set of VLANsNetwork Control PolicyOrganization Service Profile Template … … Service Profile Blade
17
17 NetApp Confidential - Internal Use Only Navigate in FlexPod Provisioning Sample Code
18
FlexPod Provisioning Code Outline (I) 18
19
FlexPod Provisioning Code Outline (II) 19 FAS( ) NEXUS( ) UCS( ) 3.2 NetApp FAS Part I 3.3 Nexus 5548 Part I 3.4 TR3939 Continue on page 54 3.8 VMWare Install 3.7 Cabling + Enable IP Communication Data Ontap Powershell Toolkit Nexus Command Line Interface (SSH) Cisco UCS XML API ~8-12 minutes (excluding zeroing disks) Automated Day 0 according TR 3939 Aligned section by section strictly 3.6 MakeMyPod.ps1 (via sshexec.jar)
20
20 NetApp Confidential - Internal Use Only
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.