LC Integration Best Practices Specification LC Integration Best Practices A Dell Technical White Paper Steven Zessin Ganesh Viswanathan Zhan Liu 1
LC Integration Best Practices Specification This document is for informational purposes only and may contain typographical errors and technical inaccuracies. The content is provided as is, without express or implied warranties of any kind. © 2012 Dell Inc. All rights reserved. Dell and its affiliates cannot be responsible for errors or omissions in typography or photography. Dell, the DELL logo, and the DELL badge, PowerConnect, and PowerVault are trademarks of Dell Inc.
LC Integration Best Practices Specification Contents 1 Contents ............................................................................................................. 12 1.1 How to use this document ............................................................................. 12 1.2 Using the sample scripts ............................................................................... 12 1.3 Improving winRM enumeration performance ....................................................... 12 1.
LC Integration Best Practices Specification 4 5 3.14 How to determine if the system is blade, tower, or rack ........................................ 30 3.15 Getting the SystemID, Model, and more ............................................................. 30 3.16 Http, CIFS, NFS, tftp, ftp formatting ................................................................ 31 Workflows ........................................................................................................... 32 4.
LC Integration Best Practices Specification BIOS and Boot Management Profile Use Cases ................................................................ 68 6 6.1 Discovery of BIOS and boot profile support ......................................................... 68 6.2 List all BIOS attributes .................................................................................. 69 6.3 Delete pending BIOS configuration ................................................................... 69 6.
LC Integration Best Practices Specification 11.3 Get the first vFlash’s attribute information ........................................................ 83 11.4 Inventory of partitions on the virtual flash media ................................................. 83 11.5 Initialize virtual flash media ........................................................................... 83 11.6 Enable virtual flash (vFlash) media................................................................... 84 11.
LC Integration Best Practices Specification 15 Record Log Profile Use Cases .......................................................................... 98 15.1 Discovery of Record Log profile support ............................................................. 98 15.2 List Lifecycle record logs ............................................................................... 99 15.3 List Lifecycle record log capabilities ................................................................. 99 15.
LC Integration Best Practices Specification 22 22.1 23 PCI Device Profile Use Cases ......................................................................... 113 Discovery of PCI Device profile support ............................................................ 113 Sensors Profile Use Cases ............................................................................. 114 23.1 Discovery of Sensor profile support ................................................................. 114 23.
LC Integration Best Practices Specification 29.4 Get the installed BIOS firmware inventory ......................................................... 129 29.5 Get the available iDRAC firmware inventory ...................................................... 130 Simple Identity Management Profile Use Cases ................................................... 130 30 30.1 Discovery of Simple Identity Management profile support ...................................... 130 LC Management Profile Use Cases ......
LC Integration Best Practices Specification 32.8 Boot to hard drive (HD) ................................................................................ 141 Appendix ................................................................................................. 143 33 33.1 PYTHON scripts README ............................................................................... 143 33.1.1 Purpose ............................................................................................... 143 33.1.
LC Integration Best Practices Specification Figures Figure 1. Typical Life Cycle of an 11G (LC1.5.0 & LC1.5.1) Configuration Job ........................... 16 Figure 2. Typical Life Cycle of a 12G Configuration Job ...................................................... 17 Figure 3. Compatibility with 11G Workflows .................................................................... 18 Figure 4. Software Inventory: Instance Diagram ..............................................................
LC Integration Best Practices Specification 1 1.1 Contents How to use this document This document contains the detailed steps of common workflows to perform various tasks utilizing winRM or WSMAN. The PYTHON scripting language was used to provide a software development kit (SDK) for Lifecycle Controller (LC) API methods.
LC Integration Best Practices Specification Additionally, increasing the allotted maximum envelope size and timeout can also increase performance. winrm set winrm/config @{MaxEnvelopeSizekb="150"} winrm set winrm/config @{MaxTimeoutms ="60000"} Other optional WinRM configuration commands are listed below for convenience. To get the current WinRM configuration settings, execute the following command. winrm g winrm/config By default, the client computer requires encrypted network traffic.
LC Integration Best Practices Specification a. Enumerate the DCIM_RAIDString, DCIM_RAIDEnumeration, and DCIM_RAIDInteger classes (DCIM_RAIDString shown below) winrm enumerate "cimv2/root/dcim/DCIM_RAIDString" -r:https://IPADDRESS/wsman=u:username -p:password -SkipCNcheck -SkipCAcheck -encoding:(utf)-8 -a:basic format:pretty b. The output from above will provide the available attributes of each class 4) Firmware versioning a.
LC Integration Best Practices Specification [major change] . [minor change] . [errata] 1.6 Increments in the major change field indicate that the profile is not backward compatible. Increments in the minor change field indicate that one or more new methods have been added. Increments in the errata field indicate that one more defects have been fixed.
LC Integration Best Practices Specification 1.7.1 RS Status and job status The details below describe how the remote service (RS) status relates to the job status. RS status is a feature that indicates whether the system is ready to invoke WSMAN commands. It must be in a ready state before executing any WSMAN commands. NOTE: The RS Status method was introduced in LC1.5.0. Figure 1. Typical Life Cycle of an 11G (LC1.5.0 & LC1.5.
LC Integration Best Practices Specification After the job is complete in Automated Task Application (previously SSM), the job status is immediately updated in the job store. The job is moved immediately to the Completed state once it is complete in the Automated Task Application. As seen in the timeline diagram above, after the job is Completed, the sync happens in the configDB, and then the RS status goes to Reloading state.
LC Integration Best Practices Specification 1.7.3 11G and 12G compatibility Figure 3. Compatibility with 11G Workflows [NOT TO SCALE] READY FOR EXECUTION SCHEDULED Job Status RUNNING COMPLETED GetRSStatus() RELOADING READY READY SYNC TIME GetRemoteServicesAPIStatus() Lifecycle Controller Remote Services is not ready. Lifecycle Controller Remote Services is ready. NOTE: Dotted lines denote the old behavior. Bold red line denotes the new behavior in 12G.
LC Integration Best Practices Specification 1.7.4 GetRemoteServicesAPIStatus output descriptions Output parameter Name Status Possible values 0 (Ready) 1 (Not Ready) LC060 LC061 Message Lifecycle Controller Remote Services is not ready. Lifecycle Controller Remote Services is ready. ServerStatus 0 (Powered off) 1 (In POST) 2 (Out of POST) 3 (Collecting System Inventory) Description Lifecycle Controller Remote Services is ready to accept any web services request.
LC Integration Best Practices Specification Reference links 1.8 Web Services Interface Guide for Windows & linux http://www.delltechcenter.com/page/Lifecycle+Controller Profiles http://en.community.dell.com/techcenter/systems-management/w/wiki/1906.aspx PCI ID reference list http://pciids.sourceforge.net/pci.ids Installation and Configuration for Windows Remote Management http://msdn.microsoft.com/en-us/library/windows/desktop/aa384372(v=vs.85).
LC Integration Best Practices Specification 2 2.1 Terms and Definitions LC Lifecycle Controller 2.2 ENUMERATE Refers to WS-MAN ENUMERATE operation as described in Section 8.2 of DSP0226_V1.1 and Section 9.1 of DSP0227_V1.0 2.3 GET Refers to WS-MAN GET operation as defined in Section 7.3 of DSP00226_V1.1 and Section 7.1 of DSP0227_V1.0 2.4 iDRAC integrated Dell Remote Access Controller – management controller for blades and monolithic servers 2.5 USC Unified Server Configurator 2.
LC Integration Best Practices Specification 3 3.1 Anomalous Algorithms and Descriptions Setting CNA bandwidth The recommended algorithm is to schedule jobs such that MinBandwidths are first reduced, and then increased. Essentially, delta values need to be sorted, and jobs scheduled in that order. Consider the following example: Current: 25, 25, 25, 25 Target: 30, 30, 20, 20 Since 20, 20 are both reducing values from 25, they should be scheduled first. This makes space for increasing the other values.
LC Integration Best Practices Specification winrm i ApplyAttributes http://schemas.dmtf.org/wbem/wscim/1/cimschema/2/root/dcim/DCIM_iDRACCardService?SystemCreationClassName=DCIM_C omputerSystem+CreationClassName=DCIM_iDRACCardService+SystemName=DCIM:C omputerSystem+Name=DCIM:iDRACCardService -u: [USER_NAME] -p:[PASSWORD] -r:https://[IP_ADDRESS]/wsman -SkipCNcheck -SkipCAcheck -encoding:utf-8 -a:basic -timeout:120000 -file:iDRAC.Embedded.1_setatts.
LC Integration Best Practices Specification ENUMERATE the DCIM_NICView class and note the PCID, then look up in PCID table 1) http://pciids.sourceforge.net/pci.ids ENUMERATE the DCIM_NICString class and search for attribute ChipMdl. The 2) CurrentValue parameter will contain the NIC card model number. DCIM_NICString AttributeName = ChipMdl CurrentValue = BCM5716 C0 DefaultValue FQDD = NIC.Embedded.2-1 InstanceID = NIC.Embedded.
LC Integration Best Practices Specification Recommendation: Change the Telnet attributes prior to setting the SerialRedirection.Enable attribute. Or, if using input XML, have the Telnet attributes before the SerialRedirection.Enable attribute. 3.7 Never unplug hardware during updates Users should not unplug any hardware during critical remote enablement (RE) updates. This may result in unexpected behaviors.
LC Integration Best Practices Specification FirmwareVersion = 1.00.00 GUID = 3132334f-c0b7-3480-3510-00364c4c454 IPMIVersion = 2.0 InstanceID = iDRAC.Embedded.1-1#IDRACinfo LANEnabledState = 1 LastSystemInventoryTime = 20120121022852.000000+000 LastUpdateTime = 20120124015120.
LC Integration Best Practices Specification The FQDD in the example below will be unique to a particular user’s system. The NIC FQDDs of the system can be obtained by running the GetNICViews() command from the RECITE command line. GetNICAttributes -cql="select * from DCIM_NICAttribute where FQDD='NIC.Integrated.1-1-1'" 3.9.
LC Integration Best Practices Specification 2. Password 3. This ordering is applicable to both ApplyAttributes() and SetAttributes() iDRAC methods. Use the reverse order when clearing/disabling the account. 3.11 How to determine if server is 11G or 12G In order to determine if a server is 11G or 12G irrespective of the license present on the server, the recommendation is to look at “LifecycleControllerVersion” property from DCIM_SystemView.
LC Integration Best Practices Specification NOTE: If an operating system has been installed, the system will boot into it. It may be desired to wait until the OS boot is complete before performing a graceful shutdown. D) [LC1.5.0+] The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification 3.14 How to determine if the system is blade, tower, or rack Dell has been officially using “M”, “T” and “R” letters in the Model name to distinguish between “Modular”, “Tower” and “Rack” server respectively for the past couple of generations. Getting the SystemGeneration attribute can be achieved by viewing the SystemView class. Section 31.4 of this document describes the workflow for enumerating the DCIM_SystemView class.
LC Integration Best Practices Specification LastUpdateTime = 20130206004538.000000+000 LicensingRollupStatus = 1 LifecycleControllerVersion = 2.1.0 Manufacturer = Dell Inc.
LC Integration Best Practices Specification tftp://[IP ADDRESS]/[PATH TO FILE.exe] ftp://[IP ADDRESS]/[PATH TO FILE.exe] 4 Workflows The Best Practice Guide provides the detailed step-by-step Lifecycle Controller WSMAN API interactions and algorithmic descriptions needed to implement various system management workflows. 4.
LC Integration Best Practices Specification F) AssignSpare(): Create dedicated hotspare using Create VD instanceID [ReturnValue=0]. G) AssignSpare(): Create global hotspare [ReturnValue=0]. H) CreateRAIDConfigJob(): Apply steps D) – F) [ReturnValue=4096]. I) Poll jobstatus for Completed: GET the InstanceID of from H). See section 2.3 for a definition of GET. J) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification B) [LC1.5.1 only] Disable CSIOR (Collect System Inventory on Restart). NOTE: On 11G systems, CSIOR must be disabled to circumvent a sync behavior that prohibits successful RAID stacking. a. SetAttribute(): Sets attribute to be configured [ReturnValue=0] b. CreateConfigJob(): Creates jobID and applies configuration [ReturnValue=4096] C) ENUMERATE the DCIM_ControllerView class to find RAID controller’s instanceID & FQDD (they are often identical.) See Section 2.
LC Integration Best Practices Specification a. HotSpareStatus parameter of 2, indicates global hotspare b. HotSpareStatus parameter of 1, indicates dedicated hotspare NOTE: H200 controller is unique in that it always returns 2 for both dedicated and global hotspares P) ENUMERATE the DCIM_BIOSEnumeration class to ensure BIOS settings were correctly set. See section 2.2 for a definition of ENUMERATE . 4.3 Boot to network ISO This workflow boots the host system from an image on a network share.
LC Integration Best Practices Specification K) RequestMonoSystemStateChange(): [ReturnValue=0]. NOTE: Modular systems (i.e. M610, M710, etc.) use RequestModSystemStateChange(). 4.4 Boot to ISO from vFlash This workflow boots the host system from an ISO image located on the vFlash. The workflow first removes any existing driver packs or existing attached OS, then gets available OS drivers, unpacks the desired set of drivers, and boots from an image on the vFlash.
LC Integration Best Practices Specification N) DetachISOFromVFlash(): [ReturnValue=0]. O) DeleteISOFromVFlash(): [ReturnValue=0]. P) RequestMonoSystemStateChange(): Reboot to finish removal of OS [ReturnValue=0]. NOTE: Modular systems (i.e. M610, M710, etc.) use RequestModSystemStateChange(). 4.5 Set hard drive to first in boot order This workflow will set the hard drive(c:) to the top of the boot order. If the BootMode is set to UEFI, it will set it to BIOS.
LC Integration Best Practices Specification H) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. The GetRSStatus() method must first poll for ‘reloading’ then poll for ‘ready’, while the GetRemoteServicesAPIStatus() can just poll for ‘ready.’ I) ENUMERATE the DCIM_BootSourceSetting class. See section 2.
LC Integration Best Practices Specification Prerequisites for script: Valid and enabled vFlash card for licensing Set script variables by editing script Script: Backup_CIFS_NFS.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) BackupImage(): Performs backup operation [ReturnValue=4096].
LC Integration Best Practices Specification Valid and enabled vFlash card with existing image Set script variables by editing script Script: Restore_CIFS_NFS.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) RestoreImage(): Performs restore operation [ReturnValue=4096].
LC Integration Best Practices Specification F) SetupJobQueue(): Use JID(D) and reboot RID(E) [ReturnValue=0]; The StartTimeInterval parameter is set to TIME_NOW, meaning the operations will be invoked immediately. G) Poll RID jobstatus for Reboot Completed: GET the InstanceID of from E). See section 2.3 for a definition of GET. H) Poll JID jobstatus for Completed: GET the InstanceID of from D). See section 2.3 for a definition of GET.
LC Integration Best Practices Specification I) [LC1.5.0/LC1.5.1] Sleep for 5 minutes to allow reboot, POST, and CSIOR to complete See Appendix 33.4.3 and 33.4.7 for more information about POST and CSIOR J) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. 4.
LC Integration Best Practices Specification 4.13 PXE Boot using embedded NICs (11G only) This workflow performs a reboot of the host OS into the PXE boot configuration by first setting the embNic1Nic2 parent attributes and embNic1 and embNic2 child attributes. Approximate time for completion on an 11G system is 20-40 minutes depending on the system configuration. Applies to: LC1.5.1+ Prerequisites for script: None Script: PXEboot_NIC1_NIC2.
LC Integration Best Practices Specification a. GetBIOSEnumerations(): Enumerate the DCIM_BIOSEnumeration to obtain the current values of EmbNic attributes b. DeletePendingBIOSConfiguration(): Ensures there is no other pending BIOS configuration c. SetAttribute(): Set parent attribute EmbNic1Nic2 to Enabled [ReturnValue=0] d. SetAttribute(): Set child attributes EmbNic1 and EmbNic2 to EnabledPxe [ReturnValue=0] e.
LC Integration Best Practices Specification NOTE: The following RS Status polling is for PXE to be set in the boot list during CSIOR g. The GetRSStatus() method must first poll for ‘reloading’ then poll for ‘ready’, while the GetRemoteServicesAPIStatus() can just poll for ‘ready.’ 4.
LC Integration Best Practices Specification a. GetBIOSEnumerations(): Enumerate the DCIM_BIOSEnumeration to obtain the current values of EmbNic attributes b. DeletePendingBIOSConfiguration(): Ensures there is no other pending BIOS configuration c. SetAttribute(): Set parent attribute EmbNic1Nic2 to Enabled [ReturnValue=0] d. SetAttribute(): Set child attributes EmbNicPort1BootProto to None and EmbNicPort2BootProto to None [ReturnValue=0] e.
LC Integration Best Practices Specification D) ENUMERATE the DCIM_NICEnumeration, DCIM_NICString, DCIM_NICInteger, and DCIM_BIOSEnumeration classes to collect information about the system. See section 2.2 for a definition of ENUMERATE . E) SetBIOSAttributes(): Set all the following attributes, if at least one is not set to desired value a. b. c. d. e.
LC Integration Best Practices Specification Q) Poll jobstatus for Completed: GET the InstanceID of from M). See section 2.3 for a definition of GET. R) Poll jobstatus for Completed: GET the InstanceID of from O). See section 2.3 for a definition of GET. S) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification E) GetBootSourceSettings(): ENUMERATE the DCIM_BootSourceSetting class to collect information about the NICs. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification If it is not enabled, enable it as shown below CreateBIOSConfigJob() ScheduledStartTime=TIME_NOW RebootJobType=1 Poll jobstatus for Completed: SetBIOSAttributes() AttributeName=IntegratedNetwork1 AttributeValue=Enabled AttributeName=BootMode AttributeValue=Bios GET the InstanceID of from 2). C) GetNICViews: ENUMERATE the DCIM_NICVIEW class to collect information about the NIC FQDDs. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification Notes: 1) QLogic will not show up in the boot list until it connects to an iSCSI target. So if iSCSI is misconfigured, or the network is down, it does not show up. 2) RAID and SATA HDs cannot be disabled in the boot list. Either disable the controller, but then they are not available as secondary disks, or move them down in the HD boot list.
LC Integration Best Practices Specification Set CurrentEnabledStatus=1 for NIC FQDD boot source F) GetBootSourceSettings(): ENUMERATE the DCIM_BootSourceSetting class to collect information about the NICs. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification HD 4.19 IO Identity This workflow sets IO Identity NIC attributes by first setting the required attributes for the operation, and then applying the changes immediately using the TIME_NOW parameter. Note that these attributes are read-only on some NIC cards, and read-write on others (i.e. Broadcom 57712). Approximate time for completion on a 12G system is 15-30 minutes depending on the system configuration.
LC Integration Best Practices Specification H) ENUMERATE the DCIM_NICString class and ensure the attributes were applied correctly. See section 2.2 for a definition of ENUMERATE . 4.20 Export LC log This workflow exports the LC log to either an NFS or CIFS share. Approximate time for completion on an 12G system is 5 minutes depending on the system configuration. Applies to: LC1.5.0+ Prerequisites for script: Set script variables by editing script Script: ExportLCLog.
LC Integration Best Practices Specification HD 4) port settings are configured against partition 1 (NIC.Integrated.1-1-1) but the boot target will show up on partition 4 (BCV:BIOS.Setup.1-1#HddSeq#NIC.Integrated.1-1-4) Applies to: LC2+ Prerequisites for script: QLogic NDC Set desired script variables by editing script FQDD must be NIC.Integrated.1-1-1 (for port setting) and NIC.Integrated.1-1-4 (for boot target setting) Script: FCoEboot-12gNDC-qlogic.
LC Integration Best Practices Specification AttributeName=FCoEOffloadMode AttributeValue=Enabled AttributeName=VirtFIPMacAddr AttributeValue=$VirtFIPMacAddr AttributeName=VirtWWN AttributeValue=$VirtWWN AttributeName=VirtWWPN AttributeValue=$VirtWWPN AttributeName=MinBandwidth AttributeValue=$MinBandwidth AttributeName=MaxBandwidth AttributeValue=$MaxBandwidth 4. CreateNICConfigJob() 5. Set Port Attributes as follows: SetNICAttributes() on NIC.Integrated.
LC Integration Best Practices Specification the NIC. Approximate time for completion on a 12G system is 20-30 minutes depending on the system configuration.
LC Integration Best Practices Specification C) CheckConnectFirstFCoETarge(): ENUMERATE the NIC FADD and check if ConnectFirstFCoETarget is eabled, if not, enable ConnectFirstFCoETarget as show below SetNICAttributes() AttributeName=LegacyBootProto AttributeValue=FCoE AttributeName=ConnectFirstFCoETarget AttributeValue=Enabled Disable all sources Create BIOS job SetNICAttributes() AttributeName=ConnectFirstFCoETarget AttributeValue=Enabled CreateNICConfigJob with RebootJobType=1 D) Confi
LC Integration Best Practices Specification F) ChangeBootSourceState(): Use InstanceID=IPL EnabledState=0 source=(instanceID from D) G) GetBootSourceSettings(): ENUMERATE the DCIM_BootSourceSetting class to collect information about the boot sources. See section 2.2 for a definition of ENUMERATE.
LC Integration Best Practices Specification Script: FCoEboot-12g-Broadcom.win The four high level steps, which may require 3 reboots, are the follows: 1) If the NIC is disabled, 1 job to enable it in bios and reboot 2) If partition disabled, 1 job to enable partition and reboot 3) Once both NIC card and partition are enabled, set the FCoE related NIC attributes and reboot 4) After that, the NIC will show up in the IPL list, enable it. A) Check the NIC is enabled 1.
LC Integration Best Practices Specification 4.24 IO Identity for QLogic (12G only) This workflow sets IO Identity, which are the following: virtual Mac address, virtual iSCSI Mac address, virtual FIP Mac address, virtual WWN, and virtual WWPN. This workflow is for Qlogic cards only. This script has been tested on Qlogic Mezz card, slot 2 with the following setting. Different cards or different slots require modifications to the script. $nic=NIC.Mezzanine.2B-1-1 $nic2=NIC.Mezzanine.
LC Integration Best Practices Specification C) Disable the FlexAddress SetLCAttributes AttributeName=VirtualAddressManagement AttributeValue=Console D) Set IO Identity 4.
LC Integration Best Practices Specification B) Check NIC is enabled 1. GetBIOSEnumerations(): ENUMERATE the DCIM_BIOSEnumeration class to collect information about the system. 2.
LC Integration Best Practices Specification 4.26 IO Identity for Intel (12G only) This workflow sets IO Identity for Intel cards only. The script is an example for setting IO Identity for the following: Port 1 NIC FCoE Applies to: LC2+ Prerequisites for script: Intel card Set desired script variables by editing script Intel cards have no partitions Script: IO_IdentityIntel.
LC Integration Best Practices Specification 4.27 SetNICAttributes() Target = (NIC FQDD) AttributeName= VirtMacAddr/ VirtFIPMacAddr/ VirtWWN/VirtWWPN CreateNICConfigJob() Target = (NIC FQDD) RebootJobType=1 Poll job status for completion using instanceID form CreateNICConfigJob() Export System Configuration (12G only) This method is used to export the system configuration from the Lifecycle Controller to a file on a remote share. Applies to: LC2.
LC Integration Best Practices Specification B) ImportSystemConfiguration(): Invokes the import operation [ReturnValue=4096] NOTE: The user must set applicable IP address, username, password, and filename of the network share. C) Poll jobstatus for Completed: GET the InstanceID of from B). See section 2.3 for a definition of GET. 4.
LC Integration Best Practices Specification B) DetachDrivers(): Ensures any drivers are detached. C) DetachISOImage(): Ensures all images are detached. D) GetDriverPackInfo(): Displays available OS drivers. This is only required for end to end OS deployment. E) UnpackAndAttach(): Unpacks and attaches desired driver pack. The resulting concrete job is invoked immediately. This is only required for end to end OS deployment. F) Poll concrete job until ‘Success’.
LC Integration Best Practices Specification Results for the InstanceID of DCIM:BaseMetrics:1.0.0 shown below. If no instance is returned, the profile is not supported. DCIM_LCRegisteredProfile AdvertiseTypeDescriptions = WS-Identify AdvertiseTypeDescriptions = Interop Namespace AdvertiseTypes = 1 AdvertiseTypes = 1 InstanceID = DCIM:BaseMetrics:1.0.
LC Integration Best Practices Specification InstanceID = DCIM:BIOSandBootManagement:1.0.0 OtherRegisteredOrganization = DCIM ProfileRequireLicense = Remote Firmware Configuration ProfileRequireLicenseStatus = LICENSED RegisteredName = BIOS and Boot Management RegisteredOrganization = 1 RegisteredVersion = 1.2.0 6.2 List all BIOS attributes Use the following procedure below to view all available instances of the DCIM_BIOSEnumeration class, DCIM_BIOSInteger class, and DCIM_BIOSString classes in the system.
LC Integration Best Practices Specification C) DeletePendingBIOSConfiguration(): Deletes the pending BIOS configuration, using a target FQDD such as BIOS.Setup.1-1. A return message of “No pending data present to delete” indicates that there is no pending BIOS configuration to delete for the respective FQDD. 6.4 Inventory of boot configurations in system Use the following procedure below to view all available instances of the DCIM_BootConfigSetting class. Applies to: LC1.5.
LC Integration Best Practices Specification 6.6 Inventory of boot sources in system Use the following procedure below to view all available instances of the DCIM_BootSourceSetting class. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetBootSources.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification D) GetBootSourceSettings(): ENUMERATE the DCIM_BootSourceSetting class. See section 2.2 for a definition of ENUMERATE . a. The CurrentEnabledStatus attribute defines whether the boot source is enabled or disabled b. If the CurrentEnabledStatus is desired value, skip to the end E) ChangeBootSourceState(): using instanceID = IPL and EnabledState=1 [ReturnValue=0] F) Poll jobstatus for Completed: GET the InstanceID of from E). See section 2.
LC Integration Best Practices Specification The OneTime entry should have an IsNext value of 3, which means “Is Next for Single Use” F) GetBootSourceSettings(): ENUMERATE the DCIM_BootSourceSetting class. Verify that an additional entry for that DCIM_BootSourceSetting appears with an InstanceID prefixed with “OneTime:”, such as InstanceID = OneTime:IPL:HardDisk.List.1-1:c9203080df84781e2ca3d512883dee6f. After the reboot, the boot list reverts to the original boot list.
LC Integration Best Practices Specification Applies to: LC1.5.0+ Prerequisites for script: none Script: GetCPUViews.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetCPUViews(): ENUMERATE the DCIM_CPUView class to view all instances. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification GetRemoteServicesAPIStatus(): B) GetLCRegisteredProfiles(): ENUMERATE the DCIM_LCRegisteredProfile class to view all registered profiles. See section 2.2 for a definition of ENUMERATE . C) Search for “RegisteredName=Event Filter” and note its instanceID to use in step D) D) GetLCRegisteredProfile(): GET the DCIM_LCRegisteredProfile instance using the InstanceID from C). See Section 2.3 for a definition of GET. Results for the InstanceID of DCIM:EventFilter:1.0.
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. GetRemoteServicesAPIStatus(): B) GetEventFilters(): ENUMERATE the DCIM_EventFilter class to view all instances. See section 2.2 for a definition of ENUMERATE . All available instance information will be returned. 8.4 Get single event filter’s information Use the following procedure to get a single Event Filter instance.
LC Integration Best Practices Specification Applies to: LC2+ Prerequisites for script: Set variables by editing script Script: SetEventFilterByInstanceIDs.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. GetRemoteServicesAPIStatus(): B) GetEventFilters(): ENUMERATE the DCIM_EventFilter class to view all available instances to use in C). See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification ProfileRequireLicense = Remote Inventory ProfileRequireLicense = Virtual Console ProfileRequireLicense = Virtual Media ProfileRequireLicense = Two-Factor Authentication ProfileRequireLicense = Directory Services ProfileRequireLicense = IPv6 ProfileRequireLicense = Dynamic DNS ProfileRequireLicenseStatus = LICENSED ProfileRequireLicenseStatus = LICENSED ProfileRequireLicenseStatus = LICENSED ProfileRequireLicenseStatus = LICENSED ProfileRequireLicenseStatus = LICEN
LC Integration Best Practices Specification The instance information of all available iDRAC cards will be returned. 9.4 Get the first iDRAC card’s information Use the following procedure to get a single iDRAC instance. The URI for getting particular instance information is deterministic (i.e the InstanceID will be unique for each instance). Applies to: LC1.5.0+ Prerequisites for script: Set desired instanceID by editing script Script: GetiDRACCardView.
LC Integration Best Practices Specification 9.6 Schedule a set iDRAC card attribute(s) operation Use the following procedure to set a iDRAC attribute(s) using the SetAttributes and CreateTargetConfigJob methods. This example sets the attribute immediately using the TIME_NOW parameter, however the job can be scheduled for execution at a later time. Applies to: LC2.0+ Prerequisites for script: Set desired values by editing script Script: SetiDRACCardAttribute.
LC Integration Best Practices Specification Results for the InstanceID of DCIM:Fan:1.0.0 shown below. If no instance is returned, the profile is not supported. DCIM_LCRegisteredProfile AdvertiseTypeDescriptions = WS-Identify, Interop Namespace AdvertiseTypes = 1, 1 InstanceID = DCIM:Fan:1.0.0 OtherRegisteredOrganization = DCIM ProfileRequireLicense = Remote Inventory ProfileRequireLicenseStatus = LICENSED RegisteredName = Fan RegisteredOrganization = 1 RegisteredVersion = 1.0.0 10.
LC Integration Best Practices Specification 11 Persistent Storage Profile Use Cases 11.1 Discovery of Persistent Storage profile support Use the following procedure below to confirm the existence of Persistent Storage profile support. Applies to: LC1.4.0+ Prerequisites for script: none Script: GetPersistentStorageProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification B) GetvFlashViews(): ENUMERATE the DCIM_VFlashView class to view all instances. See section 2.2 for a definition of ENUMERATE . The instance information of all available virtual flash media will be returned. 11.3 Get the first vFlash’s attribute information The URI for getting particular instance information is deterministic (i.e the InstanceID will be unique for each instance) Applies to: LC1.5.
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetVFlashViews(): ENUMERATE the DCIM_VFlashView class to view the current value of InitializedState. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification C) VFlashStateChange(): Invokes the VFlashStateChange method on the class DCIM_PersistentStorageService D) Repeat B) to confirm successful execution of the method 11.8 Create new partition on virtual flash (vFlash) media This method is used to create a new partition on the virtual flash media device. Applies to: LC1.5.0+ Prerequisites for script: set variables by editing script Script: VFlashCreatePartition.
LC Integration Best Practices Specification E) Repeat B) to confirm successful execution of the method 11.10 Delete existing partition This method is used to delete a partition from the virtual flash media device. Applies to: LC1.5.0+ Prerequisites for script: set variables by editing script Script: VFlashDeletePartition.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification 11.12 Modify existing partition This method is used to modify a partition on the virtual flash media device. Applies to: LC1.5.0+ Prerequisites for script: set variables by editing script Script: VFlashModifyPartition.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification Script: VFlashDetachPartition.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) DetachPartition(): Invokes the DetachPartition method on the class DCIM_PersistentStorageService C) Poll jobstatus for Completed: GET the InstanceID of from B).
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) [LC1.5.0/LC1.5.1]GetCIMRegisteredProfiles(): [LC2.0.0]GetLCRegisteredProfiles(): ENUMERATE the applicable class to view all registered profiles. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification GetRemoteServicesAPIStatus(): B) GetLCRegisteredProfiles(): ENUMERATE the DCIM_LCRegisteredProfile class to view all registered profiles. See section 2.2 for a definition of ENUMERATE . C) Search for “RegisteredName=Profile Registration” and note its instanceID to use in step D) D) GetLCRegisteredProfile(): GET the DCIM_LCRegisteredProfile instance using the InstanceID from C). See Section 2.3 for a definition of GET.
LC Integration Best Practices Specification Results for the InstanceID of DCIM:SimpleRAID:1.0.0 shown below. If no instance is returned, the profile is not supported. DCIM_LCRegisteredProfile AdvertiseTypeDescriptions = WS-Identify AdvertiseTypeDescriptions = Interop Namespace AdvertiseTypes = 1 AdvertiseTypes = 1 InstanceID = DCIM:SimpleRAID:1.0.
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetControllerView(): GET the DCIM_ControllerView instance using the desired instanceID. See Section 2.3 for a definition of GET.
LC Integration Best Practices Specification C) DeletePendingRAIDConfiguration(): Deletes the pending configuration for a particular RAID controller, using a target FQDD. 14.7 Clear old configuration from newly added hard drive Use the following procedure below to clear old configuration from newly added hard drives. Applies to: LC1.5.0+ Prerequisites for script: Set desired RAID FQDD by editing script Script: ClearForeignConfig.
LC Integration Best Practices Specification B) GetControllerViews(): ENUMERATE the DCIM_ControllerView class to view all available RAID FQDDs. See section 2.2 for a definition of ENUMERATE . C) GetRAIDLevels(): Invoke this method to return desired data The output will contain the available RAID level configurations for the given physical disk selection 14.
LC Integration Best Practices Specification D) CheckVDValues(): Invoke this method to return desired data The output will contain the available sizes and default values for the given RAID level and set of physical disks 14.11 Create a virtual disk View the RAID stacking workflows in Section 4 for a comprehensive example. 14.12 Determine available physical disks to be used as a hotspare The GetDHSDisks() method is used to determine possible physical disks to be used as a hotspare. Applies to: LC1.5.
LC Integration Best Practices Specification C) GetVirtualDiskViews(): ENUMERATE the DCIM_VirtualDiskView class to view all available virtual disk FQDDs. See section 2.2 for a definition of ENUMERATE . D) DeleteVirtualDisk (): Invoke this method to delete the VD E) CreateRAIDConfigJob(): Apply step D) [ReturnValue=4096] F) Poll jobstatus for Completed: GET the InstanceID of from E). See section 2.3 for a definition of GET.
LC Integration Best Practices Specification B) GetControllerViews(): ENUMERATE the DCIM_ControllerView class to view all available RAID FQDDs. See section 2.2 for a definition of ENUMERATE . C) GetPhysicalDiskViews(): ENUMERATE the DCIM_PhysicalDiskView class to view all available physical disk FQDDs. See section 2.2 for a definition of ENUMERATE . Note the value of the RaidStatus parameter of the desired physical disk.
LC Integration Best Practices Specification Note the value of the RaidStatus parameter of the desired physical disk. D) ConvertToNonRAID(): Invoke this method E) CreateRAIDConfigJob(): Apply step D) [ReturnValue=4096] F) Poll jobstatus for Completed: GET the InstanceID of from E). See section 2.3 for a definition of GET. G) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification InstanceID = DCIM:RecordLog:1.0.0 OtherRegisteredOrganization = DCIM ProfileRequireLicense ProfileRequireLicenseStatus RegisteredName = Record Log RegisteredOrganization = 1 RegisteredVersion = 1.0.0 15.2 List Lifecycle record logs Use the following procedure below to list the inventory of all LCRecordLog instances in the system. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetLCRecordLogs.
LC Integration Best Practices Specification 15.4 List Lifecycle log entries Use the following procedure below to list the inventory of all LCLogEntry instances in the system. Applies to: LC1.5.0+ Prerequisites for script: Due to the large amount of data returned by this enumeration, winRM settings may need to be changed as described in the section 1.2 Script: GetLCLogEntries.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification 15.6 List system event record logs Use the following procedure below to list the inventory of all SELRecordLog instances in the system. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetSystemEventLogs.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetSystemEventLogEntries(): ENUMERATE the DCIM_SELLogEntry class to view all instances. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification OtherRegisteredOrganization = DCIM ProfileRequireLicense ProfileRequireLicenseStatus RegisteredName = Role Based Authorization RegisteredOrganization = 1 RegisteredVersion = 1.0.0 16.2 Discovery of users with assigned LAN privileges Enumerate the DCIM_IPMIRBAIdentityMemberOfCollection class to view all IPMI LAN identities that are assigned a role. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetUsersAssignedLANPrivileges.
LC Integration Best Practices Specification Applies to: LC1.5.0+ Prerequisites for script: none Script: GetUsersAssignedCLPPrivileges.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification RegisteredVersion = 1.0.0 18 Simple NIC Profile Use Cases 18.1 Discovery of Simple NIC profile support Use the following procedure below to confirm the existence of Simple NIC profile support. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetNICProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification Script: GetNICViews.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetNICViews(): ENUMERATE the DCIM_NICView class to view all instances. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification Applies to: LC1.5.0+ Prerequisites for script: Set desired NIC FQDD Script: DeletePendingNICConfiguration.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetNICViews(): ENUMERATE the DCIM_NICView class to view all available NIC FQDDs.
LC Integration Best Practices Specification F) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. When the system is ready, continue G) GetNICCapabilities(): ENUMERATE the DCIM_NICCapabilities class to view all instances of the class. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification RegisteredOrganization = 1 RegisteredVersion = 1.0.0 20 Job Control Profile Use Cases 20.1 Discovery of Job Control profile support Use the following procedure below to confirm the existence of Job Control profile support. Applies to: LC1.4.0+ Prerequisites for script: none Script: GetJobControlProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification Script: ListAllJobs.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) ENUMERATE the DCIM_LifecycleJob class to view all jobs. See section 2.2 for a definition of ENUMERATE . 20.
LC Integration Best Practices Specification D) [LC1.5.x and prior] The remote service will get reset upon invoking the delete job queue command. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile to determine when the remote service is ready. The GetRSStatus() method must first poll for ‘reloading’ then poll for ‘ready’, while the GetRemoteServicesAPIStatus() can just poll for ‘ready.’ 20.
LC Integration Best Practices Specification Results for the InstanceID of DCIM:Memory:1.0.0 shown below. If no instance is returned, the profile is not supported. NOTE: 12G example output shown below DCIM_LCRegisteredProfile AdvertiseTypeDescriptions = WS-Identify AdvertiseTypeDescriptions = Interop Namespace AdvertiseTypes = 1 AdvertiseTypes = 1 InstanceID = DCIM:Memory:1.0.
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetMemoryView(): GET the DCIM_MemoryView instance using the InstanceID= DIMM.Socket.A1. See Section 2.3 for a definition of GET.
LC Integration Best Practices Specification 23 Sensors Profile Use Cases 23.1 Discovery of Sensor profile support There is currently not a registered Sensor Profile prior to LC2.0. However, the CIM_Sensor class has been implemented, which returns all the sensor views when enumerated. Use the following procedure below to confirm the existence of Sensors profile support in LC2.0+. Applies to: LC2+ Prerequisites for script: none Script: GetSensorProfile.
LC Integration Best Practices Specification Use the following procedure below to list the inventory of all sensors in the system. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetSensorViews.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification Use the following procedure below to confirm the existence of the Base Server and Physical Asset profile support in LC2.0+. Applies to: LC2+ Prerequisites for script: none Script: GetBaseServerAndPhysicalAssetProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification Script: GetBaseServerAndPhysicalAssetProfilesLC151.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetCIMRegisteredProfiles(): ENUMERATE the DCIM_RegisteredProfile class to view all registered profiles. See section 2.
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetCIMRegisteredProfiles(): ENUMERATE the DCIM_RegisteredProfile class to view all registered profiles. See section 2.2 for a definition of ENUMERATE . 25 Video Profile Use Cases 25.
LC Integration Best Practices Specification 25.2 Inventory of video in system Use the following procedure below to list the inventory of all video in the system. Applies to: LC1.5.0+ Prerequisites for script: none Script: GetVideoViews.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification Use the following procedure below to confirm the existence of License Management profile support. Applies to: LC2+ Prerequisites for script: none Script: GetLicenseManagementProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. GetRemoteServicesAPIStatus(): B) GetLCRegisteredProfiles(): ENUMERATE the DCIM_LCRegisteredProfile class to view all registered profiles. See section 2.
LC Integration Best Practices Specification Script: GetPowerSupplyProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetLCRegisteredProfiles(): ENUMERATE the DCIM_LCRegisteredProfile class to view all registered profiles. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification 27.3 Get the first power supply’s information Use the following procedure to get a single power supply instance. The URI for getting particular instance information is deterministic (i.e the InstanceID will be unique for each instance). Applies to: LC1.5.0+ Prerequisites for script: Set desired instanceID by editing script Script: GetPowerSupplyView.
LC Integration Best Practices Specification This workflow enumerates DCIM_AssociatedPowerManagementService class. Applies to: LC1.5.0 Prerequisites for script: none Script: GetBladePower.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification OtherRegisteredOrganization = DCIM ProfileRequireLicense = Power Budget ProfileRequireLicense = Remote Firmware Configuration ProfileRequireLicenseStatus = LICENSED ProfileRequireLicenseStatus = LICENSED RegisteredName = System Info RegisteredOrganization = 1 RegisteredVersion = 1.2.0 28.2 Inventory of system info view Use the following procedure below to list the inventory of all system info in the system. Applies to: LC1.5.
LC Integration Best Practices Specification 28.4 Inventory of all system attributes in system Use the following procedure below to list the inventory of all system attributes in the system using the DCIM_SystemAttribute class. The instances from the following classes will be returned: DCIM_SystemEnumeration, DCIM_SystemInteger, DCIM_SystemString. Applies to: LC2+ Prerequisites for script: none Script: GetSystemAttributes.
LC Integration Best Practices Specification Applies to: LC2+ Prerequisites for script: Set desired values by editing script Script: SetSystemAttribute.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. GetRemoteServicesAPIStatus(): B) GetSystemAttributes(): ENUMERATE the DCIM_SystemAttribute class to view all instances of the attributes from the following classes: DCIM_SystemEnumeration, DCIM_SystemInteger, and DCIM_SystemString.
LC Integration Best Practices Specification Use the following procedure below to delete pending configurations/values set by the setAttribute(s) method. Applies to: LC1.5.0+ Prerequisites for script: none Script: DeletePendingSystemInfoConfiguration.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification System NIC1-SoftwareIdentity A v a i l a b l e I n s t a l l e d BIOS1-SoftwareIdentity iDRAC1-SoftwareIdentity RAID1-SoftwareIdentity NIC2-SoftwareIdentity 29.2 BIOS2-SoftwareIdentity iDRAC2-SoftwareIdentity RAID2-SoftwareIdentity Discovery of Software Inventory profile support Use the following procedure below to confirm the existence of Software Inventory profile support. Applies to: LC1.4.
LC Integration Best Practices Specification AdvertiseTypes = 1 AdvertiseTypes = 1 InstanceID = DCIM:SoftwareInventory:1.0.0 OtherRegisteredOrganization = DCIM ProfileRequireLicense = Remote Inventory ProfileRequireLicenseStatus = LICENSED RegisteredName = Software Inventory RegisteredOrganization = 1 RegisteredVersion = 1.1.0 29.3 Inventory of software in system Use the following procedure below to list the inventory of all software in the system. Applies to: LC1.4.
LC Integration Best Practices Specification Choose the Software Identity instance with ElementName=“BIOS” and Status="Installed" to use in C) C) GetSoftwareIdentity(): GET the DCIM_SoftwareIdentity instance from C). See Section 2.3 for a definition of GET. The instance of the installed BIOS that contains the information will be returned. 29.5 Get the available iDRAC firmware inventory Use the following procedure to get the available iDRAC software instance.
LC Integration Best Practices Specification There is currently not a registered Simple Identity Management Profile prior to LC2. Use the following procedure below to confirm the existence of Simple Identity Management profile support. Applies to: LC2+ Prerequisites for script: none Script: GetSimpleIdentityMGMTProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification Script: GetLCManagementProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetLCRegisteredProfiles(): ENUMERATE the DCIM_LCRegisteredProfile class to view all registered profiles. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetLCEnumerations(): ENUMERATE the DCIM_LCEnumeration class to view all instances. See section 2.2 for a definition of ENUMERATE .
LC Integration Best Practices Specification This workflow enumerates the DCIM_SystemView class and searches for the LifecycleControllerVersion attribute to determine the LC version on the system. Applies to: LC1.5.1+ Prerequisites for script: none Script: CheckLCVersion.win A) GetSystemViews(): ENUMERATE the DCIM_SystemView class. See section 2.2 for a definition of ENUMERATE . B) Search for the LifecycleControllerVersion attribute, the corresponding value of this attribute is the version of LC. 31.
LC Integration Best Practices Specification Applies to: LC1.5.0+ Prerequisites for script: none Script: CheckVFlashLicense.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile. B) GetLCEnumerations(): ENUMERATE the DCIM_LCEnumeration class to new view all available instances. See section 2.
LC Integration Best Practices Specification D) GetLCRegisteredProfile(): GET the DCIM_LCRegisteredProfile instance using the InstanceID from C). See Section 2.3 for a definition of GET. The instance containing the attribute will be returned. If the CurrentValue parameter is “on”, Auto Discovery Factory Defaults is already on, proceed to end. E) ReInitiateDHS(): Invoke method to set Auto Discovery values F) Repeat step D) to confirm CurrentValue is now ‘on” 31.
LC Integration Best Practices Specification 31.12 Delete auto discovery client certificat, private key and password Refer to Web Service Interface Guide section 12.8. 31.13 Replace iDRAC web server client certificate and private key Refer to Web Service Interface Guide section 12.10 31.14 Replace iDRAC web server public certificate Refer to Web Service Interface Guide section 12.9 31.15 Insert comment into Lifecycle log Use the following procedure to insert a comment into the LC log.
LC Integration Best Practices Specification Script: ExportHWInventory.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification Use the following procedure below to confirm the existence of OS Deployment profile support. Applies to: LC1.3.0+ Prerequisites for script: none Script: GetOSDProfile.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands. The GetRSStatus() method or the GetRemoteServicesAPIStatus() method may be used depending on the version of the LC Management registered profile.
LC Integration Best Practices Specification See section 4.3 Boot to networkISO and 4.4 Boot to ISO from vFlash for a comprehensive example. 32.5 Get ISO image connection status See section 4.3 Boot to networkISO and 4.4 Boot to ISO from vFlash for a comprehensive example. GetNetworkISOImageConnectionInfo() can be invoked from within either of the aforementioned scripts to obtain the status. 32.6 One time ISO boot skip Following sequence of CIM Operations shall be used to skip ISO boot once.
LC Integration Best Practices Specification NOTE: Check of Lifecycle Controller (LC) remote service state, via GetRemoteServicesAPIStatus(), is not required since ISO is connected using RFS USB endpoint and LC status is not relevant. A) Confirm RFS (remote file share) is NOT in Detach mode.
LC Integration Best Practices Specification The BootToHD() method is used to boot the system to the hard drive, even if the hard drive is not first in the boot order. Applies to: LC1.5.2+ Prerequisites for script: none Script: BootToHD.win A) The Lifecycle Controller remote service must be in a “ready” state before executing any other WSMAN commands.
LC Integration Best Practices Specification 33 Appendix 33.1 PYTHON scripts README 33.1.1 Purpose The goal of recite.py is to provide a simple and fast interface for the Dell Lifecycle Controller API. It has an interactive mode that is useful to run one off commands against a server as well as batch mode to allow automating a sequence of operations. 33.1.
LC Integration Best Practices Specification python recite.py IP=username:password@10.0.0.1 Set $IP, $LOGIN and $PASS with a single assignment python recite.py IP=username:dell123@10.0.0.1,username:dellam@10.0.0.2 Spawn two instances with specified $IP, $LOGIN and $PASS python recite.py IP=IP.ini Load IPs from file, one per line, 10.0.0.1 or user:pass@10.0.0.1, # comments a line python recite.py IP=10.0.0.1 GetRSStatus GetLifecycleJobs Execute GetRSStatus and GetLifecycleJobs on specified IP 33.1.
LC Integration Best Practices Specification Print < Return Set $ Sleep Unset Until ~$ { Use the help command in interactive mode to see further details on all available commands and methods and the required syntax. Apart from the syntax described in help, commands can also be concatenated on methods. This allows for a cleaner syntax. E.g.
LC Integration Best Practices Specification In order to ignore such errors and resume execution, prepend command with a -. For example: -Find InstanceID $id -GetPhysicalDiskViews 33.1.5 Settable variables The following variables are loaded from environment variables if available. If not, they are default initialized as specified. $IP IP of the iDRAC against which WS-MAN commands are to be executed. Default: "" Set $IP 10.0.0.1 Set $IP username:password@10.0.0.
LC Integration Best Practices Specification Set $USLEEP 20 $UTIMEOUT Default total delay in seconds used by until commands before giving up. Set $UTIMEOUT 900 $VERBOSE Control level of output from recite.py Set $VERBOSE x where x is: 0: Quiet 1: WS-MAN 2: Full 33.1.6 Internal variables $_BATCHFILE Name of current batch file (including path) with \ and / replaced with _. $_DATE Current date and time in yyyymmddhhmmss format. $_LOCALIP IP of the local system where script is running.
LC Integration Best Practices Specification 33.2 System check information 33.2.1 Check System Power State - - System power status is available from CMC (racadm/WS-MAN), iDRAC (racadm) and LC. o Enumerate the CIM_ComputerSystem class to get power status from LC as described in section 8.2 of the WSIG for Windows If system is not in a state required: o Error to user stating system is not in power state required 33.2.
LC Integration Best Practices Specification 33.3.2 Software inventory - Enumerate DCIM_SoftwareIdentity class for all firmware version levels 33.3.3 BIOS inventory - Enumerate DCIM_BIOSEnumeration class for BIOS attributes of interest 33.3.4 Boot order inventory - Enumerate DCIM_BootSourceSetting for current boot order settings 33.3.5 NIC inventory - - Enumerate DCIM_NICView class for total number of NICViews, their types and FQDDs.
LC Integration Best Practices Specification - described in section 5.2.1 The total time taken for reboot depends on the RebootJobType specified. o For a machine powered down, it shouldn’t take more than 30 seconds to power up. o For a running machine, timeout depends on the RebootJobType: 1 = PowerCycle – 30 seconds 2 = Graceful Reboot without forced shutdown – 5 minutes 3 = Graceful reboot with forced shutdown – 5 minutes 33.4.3 POST 33.4.3.
LC Integration Best Practices Specification 33.4.4.3 Inventory - After all jobs are executed, SSM will re-inventory the system and signal the iDRAC to re-sync its database. The total timeout for SSM should include 1 minute to inventory each NIC FQDD on the target system after job completion. The total timeout for SSM should include 30 seconds to inventory each RAID controller installed on the target system after job completion. 33.4.4.
LC Integration Best Practices Specification For LOM EmbNic1Nic2 needs to be enabled for 1-1, 2-1 EmbNic3Nic4 needs to be enabled for 3-1, 4-1 And so forth o For NDC IntegratedNetwork1 needs to be enabled for 1-1, 1-2 IntegratedNetwork2 needs to be enabled for 2-1, 2-2 And so forth o Addins Cannot be disabled on 11G On 12G, individual slots can be disabled, TBD if this needs to be addressed o Create a BIOS job EmbNic1Nic2 = Enabled or IntegratedNetwork1 = Enabled BootMode = Bios For Bro
LC Integration Best Practices Specification Create a NIC job o Set all iSCSI boot configuration attributes Wait for both jobs to complete Wait for CSIOR to complete o Since boot source changes only occur after reboot, they get detected only after CSIOR and refresh 6.