Can you confirm if "Collecting System Inventory on Restart" or CSIOR is Enabled on the iDRAC? This ensures that inventory is performed during POST so that the iDRAC database is kept in sync with the actual server settings.
You can check the value in Ctrl-E during POST or remotely using the following command:-
All 11G servers ship with CSIOR disabled by default whereas it is default enabled on the new 12G servers.
Enabling CSIOR remotely requires the following steps:-
- SetAttribute() on DCIM_LCService
- CreateTargetedConfigJob() on DCIM_LCService
- Check the job ID returned in the previous call - Get on DCIM_LifecycleJob
- Enumerate CSIOR again and check current value
Once you set the value, you need to reboot the server so that CSIOR can run and reinventory the system. Once that is completed, the iDRAC will have the up to date server inventory.
Applying this across multiple systems will be easier using a tool such as Recite which can be found here:-
Glad you got it working. Yes, just turning on CSIOR is not sufficient. The server needs to be rebooted in order to collect inventory and update the iDRAC database.
Rebooting the host can be done via WS-Man. You can do this using Recite as well:-
I have one more question. For example, I want to change "ProcC1E" state to Disabled with Recite help. So I wrote a script following your example above:
[IN, Description( "Input Parameter represents the type of Reboot " "1 - PowerCycle " "2 - Graceful Reboot without forced shutdown " "3 - Graceful Reboot with forced shutdown. ")] uint16 RebootJobType,
The reason your job isn't running is because you haven't specified when to run it when you create it. You need to specify the ScheduledStartTime in the CreateBIOSConfigJob() call. TIME_NOW usually works best.
[IN, Description( "Start Time of job in datetime format:yyyymmddhhmmss. " "The string \"TIME_NOW\" means immediate.")] string ScheduledStartTime,
Next, JobStatus = COMPLETED only for LCService jobs. It needs to be Completed (case sensitive) for all other jobs. This is fixed in the latest versions of LC though.
Lastly, LC settings like CSIOR are committed almost immediately, whereas BIOS settings need the server to reboot and apply settings. Next, CSIOR needs to run in order to pick up the new settings. Further, on 11G, you need to wait until the iDRAC database is refreshed with this new inventory information. This last step can be achieved by polling the RSStatus. This can be done using Recite as follows:-
DELL-Ganesh V
11 Posts
0
September 19th, 2012 10:00
Hello Tim,
Can you confirm if "Collecting System Inventory on Restart" or CSIOR is Enabled on the iDRAC? This ensures that inventory is performed during POST so that the iDRAC database is kept in sync with the actual server settings.
You can check the value in Ctrl-E during POST or remotely using the following command:-
winrm enumerate "cimv2/root/dcim/DCIM_LCEnumeration" -r:https://[IPADDRESS]:443/wsman -u:[USERNAME] -p:[PASSWORD] -SkipCNcheck -SkipCAcheck -SkipRevocationCheck -encoding:utf-8 -a:basic
DCIM_LCEnumeration
AttributeName = Collect System Inventory on Restart
Caption
CurrentValue = Disabled
DefaultValue = Disabled
Description
ElementName = LC.emb.1
InstanceID = DCIM_LCEnumeration:CCR5
IsOrderedList
IsReadOnly = false
PendingValue
PossibleValues = Enabled
PossibleValues = Disabled
PossibleValuesDescription
Best regards,
Ganesh
Timka21213
8 Posts
0
September 19th, 2012 11:00
Thank you for your suggestions, but on all the systems that parameter is in Disabled state. I will try to switch it on.
Timka21213
8 Posts
0
September 19th, 2012 11:00
Thank you for your suggestions, but on all the systems that parameter is in Disabled state. I will try to switch it on.
Timka21213
8 Posts
0
September 19th, 2012 11:00
DCIM_LCEnumeration
AttributeName = Collect System Inventory on Restart
Caption = null
CurrentValue = Disabled
DefaultValue = Disabled
Description = null
ElementName = LC.emb.1
InstanceID = DCIM_LCEnumeration:CCR5
IsOrderedList = null
IsReadOnly = false
PendingValue = null
PossibleValues = Enabled, Disabled
PossibleValuesDescription = null
DELL-Ganesh V
11 Posts
0
September 19th, 2012 12:00
Hello Tim,
All 11G servers ship with CSIOR disabled by default whereas it is default enabled on the new 12G servers.
Enabling CSIOR remotely requires the following steps:-
- SetAttribute() on DCIM_LCService
- CreateTargetedConfigJob() on DCIM_LCService
- Check the job ID returned in the previous call - Get on DCIM_LifecycleJob
- Enumerate CSIOR again and check current value
Once you set the value, you need to reboot the server so that CSIOR can run and reinventory the system. Once that is completed, the iDRAC will have the up to date server inventory.
Applying this across multiple systems will be easier using a tool such as Recite which can be found here:-
http://dell.to/recite-wsman
Here's a simple Recite script to do the above steps:-
--- START ---
# New value for CSIOR
$csior=Enabled
# Enumerate the DCIM_LCEnumeration class
GetLCEnumerations
# Get current value of CSIOR
Context AttributeName="Collect System Inventory on Restart" Find CurrentValue $cid
# If it is already set to the required value, go to End
If $cid=$csior Goto End
# Set value as required
SetLCAttribute AttributeName="Collect System Inventory on Restart" AttributeValue=$csior
# Create job to commit value
CreateLCConfigJob RebootIfRequired=true
# Get the job ID returned
Find InstanceID $jid
# Poll job until it goes into the COMPLETED state
Until JobStatus=COMPLETED GetLifecycleJob InstanceID=$jid
# Delete job on completion
DeleteJobQueue JobID=$jid
# Check value got set
GetLCEnumerations
Context AttributeName="Collect System Inventory on Restart" Find CurrentValue=$csior
:End
--- END ---
Please let us know if you need any further help with this issue.
Best regards,
Ganesh
Timka21213
8 Posts
0
September 19th, 2012 23:00
I run the script with my credentials and have set the value into Enabled state.
DCIM_LCEnumeration
AttributeName = Collect System Inventory on Restart
Caption = null
CurrentValue = Enabled
DefaultValue = Disabled
Description = null
ElementName = LC.emb.1
InstanceID = DCIM_LCEnumeration:CCR5
IsOrderedList = null
IsReadOnly = false
PendingValue = null
PossibleValues = Enabled, Disabled
PossibleValuesDescription = null
It didn't help, so I perform a manual cold reboot from iDRAC console manager, and it helps!
DELL-Ganesh V
11 Posts
0
September 20th, 2012 07:00
Hello Tim,
Glad you got it working. Yes, just turning on CSIOR is not sufficient. The server needs to be rebooted in order to collect inventory and update the iDRAC database.
Rebooting the host can be done via WS-Man. You can do this using Recite as well:-
RequestStateChange RequestedState=11
Best regards,
Ganesh
Timka21213
8 Posts
0
September 20th, 2012 08:00
Hi, Ganesh,
I have one more question. For example, I want to change "ProcC1E" state to Disabled with Recite help. So I wrote a script following your example above:
.........
GetBIOSEnumerations
Context AttributeName="ProcC1E" Find CurrentValue $cid
If $cid=$csior Goto End
## Am I right with the target name? I am not sure:
SetBIOSAttribute Target=BIOS.Setup.1-1 AttributeName="ProcC1E" AttributeValue=$csior
## What are reboot types which I can use?
CreateBIOSConfigJob Target=BIOS.Setup.1-1 RebootJobType=3
Find InstanceID $jid
Until JobStatus=COMPLETED GetLifecycleJob InstanceID=$jid
DeleteJobQueue JobID=$jid
GetBIOSEnumerations
Context AttributeName="ProcC1E" Find CurrentValue=$csior
:End
Unfortunately, the job is freezing and the attribute didn't change:
=====
DCIM_LifecycleJob
InstanceID = JID_001348144480
JobStartTime = NULL
JobStatus = Ready For Execution
JobUntilTime = TIME_NA
Message = NA
MessageID = NA
Name = ConfigBIOS:BIOS.Setup.1-1
PercentComplete = NA
Until: JobStatus != COMPLETED [['Ready For Execution']]
============
Where is my mistake?
Thanks,
Tim
Timka21213
8 Posts
0
September 20th, 2012 11:00
Thank you for the details! This is a new verion of the script:
$csior=Disabled
GetBIOSEnumerations
Context AttributeName=ProcC1E Find CurrentValue $cid
If $cid=$csior Goto End
SetBIOSAttribute Target=BIOS.Setup.1-1 AttributeName=ProcC1E AttributeValue=$csior
CreateBIOSConfigJob Target=BIOS.Setup.1-1 RebootJobType=3 ScheduledStartTime=TIME_NOW
Find InstanceID $jid
Until JobStatus=Completed GetLifecycleJob InstanceID=$jid
DeleteJobQueue JobID=$jid
Until Status=Ready GetRSStatus
GetBIOSEnumerations
Context AttributeName=ProcC1E Find CurrentValue $csior
:End
Is it seems to be correct?
DELL-Ganesh V
11 Posts
0
September 20th, 2012 11:00
Hey Tim,
RebootJobTypes are documented in the MOFs as well as profiles. Both are accessible from http://delltechcenter.com/lc.
From DCIM_BIOSService.mof, you see the following:
[IN, Description( "Input Parameter represents the type of Reboot " "1 - PowerCycle " "2 - Graceful Reboot without forced shutdown " "3 - Graceful Reboot with forced shutdown. ")] uint16 RebootJobType,[IN, Description( "Start Time of job in datetime format:yyyymmddhhmmss. " "The string \"TIME_NOW\" means immediate.")] string ScheduledStartTime,DELL-Ganesh V
11 Posts
0
September 20th, 2012 12:00
Looks good, except the GetRSStatus check should happen before you delete the job.
Best regards,
Ganesh
Timka21213
8 Posts
0
September 21st, 2012 06:00
Yep, it works finally. Thanks a lot for assitance!