1 / 19

Developer Sessions – Introduction into Automating Cisco UCS

Developer Sessions – Introduction into Automating Cisco UCS. Dr. Adolf Hohl (FCI Lead EMEA). Developer Sessions. What is it about? Integration Automation Customization For Whom? Consultants, integration engineers, architects How?

Download Presentation

Developer Sessions – Introduction into Automating Cisco UCS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Developer Sessions – Introduction into Automating Cisco UCS Dr. Adolf Hohl (FCI Lead EMEA) 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 dobetter 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 Improving IT and operation at customer Apps Data OnTAP PowerShell Toolkit Ingredients: HyperVisor NMSDK Storage SuperGlue NetApp Confidential - Internal Use Only

  3. Schedule May/June NetApp Confidential - Internal Use Only

  4. UCS Automation – VLANs, VNIC & SP templates NetApp Confidential - Internal Use Only

  5. Todays Session Ingredients • UCS Emulator • http://developer.cisco.com/web/unifiedcomputing/ucsemulatordownload • UCS PowerTool for UCSM • http://developer.cisco.com/web/unifiedcomputing/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 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 onlygo on Po10,13,14 For left and right Nexus Switch: config t vlan <vlan.id> descr <vlan.descr> forall <if> in {Po10, …, Po14} int <if> switchport trunk allowed vlan add <vlan.id> exit exit U U Po13 Po14 Po10 N N Po11 Po12 S S 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 • Hierarchical element • VNIC templates bundle network settings for reusability • In FlexPod infrastructure for each fabric a VNIC template is created Set of VLANs Organization Network Control Policy VNIC Template 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 • Hierarchical element • Service Profile Templates reference the VNIC templates (among other things) • Reusable entity to create Service Profiles • Line 1051 3_4_UCS.ps1 … … Set of VLANs Organization Network Control Policy Service Profile Template VNIC Template Service Profile Blade 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 (via sshexec.jar) 3.7 Data Ontap Powershell Toolkit FAS( ) Cabling + Enable IP Communication 3.2 NetApp FAS Part I Nexus Command Line Interface (SSH) NEXUS( ) 3.6 3.3 Nexus 5548 Part I Cisco UCS XML API UCS( ) 3.4 3.8 VMWareInstall ~8-12 minutes (excludingzeroingdisks) TR3939 Continue on page 54

  19. NetApp Confidential - Internal Use Only

More Related