Highlighted
Contributor
Contributor

Option.option error in profile

I am getting errors re mediating profiles stating the "option.option has been changed from its expected default value".   But there is no "option.option" in the settings.  My workaround is to just take a profile from a host that already has this error and apply it to the other hosts in the cluster.

Thanks for the help.

5 Replies
Highlighted
Contributor
Contributor

Have you solved this error?

We are having the same issue in our environment with 6.5 U2

0 Kudos
Highlighted
Contributor
Contributor

I ran into this recently in 6.5 U2. It appears to be a display error in the vSphere Web Client with some properties.

The way I found the values that were problematic was to use the MOB to check the CheckProfileCompliance_Task output.

You can access it in the MOB at this URL : https://my.vcenter.domain.local/mob/?moid=HostProfileManager

Click the Host Profile in question, and in the entity section, copy the "host-xxxxxx" value you want to validate for compliance.

Click the CheckProfileCompliance_Task option.

Replace the MOID value with your copied MOID and click Invoke Method.

Once you have invoked it, you'll see the task link. Click that and then go to info.

(Press F5 to refresh until the state under info is "success")

From there click that and then go to info, then result. You should see the actual message of options that have failed.

In my case they were related to the ESXi Host Client CEIP and some other variable Mem.VMOverheadGrowthLimit.

Hopefully this helps you narrow down your issue.

Highlighted
Contributor
Contributor

Super Helpful.

Followed the process, and found that Mem.VMOverheadGrowthLimit was also our issue, while adding 5.5 hosts to a 6.5 VC.

The Ultimate Solution was to disable DRS before remediating the new 5.5 host profile.

Thanks!

0 Kudos
Highlighted
Contributor
Contributor

Glad it was helpful. Smiley Happy

Here's a quick and dirty PowerCLI snippet I wrote to save me the clicks. It certainly has room for improvement so feel free to use it.

function Get-VMHostProfileComplianceVerbose {

    param(

        [Parameter(Mandatory=$true)][VMware.VimAutomation.ViCore.Impl.V1.Inventory.VMHostImpl]$VMHost,

        [VMware.VimAutomation.ViCore.Types.V1.Host.Profile.VMHostProfile]$HostProfile

    )

  

    # Execute the compliance task.

    try {

        $Task = $HostProfile.ExtensionData.CheckProfileCompliance_Task($VMHost.ExtensionData.MoRef)

        $TaskObject = Get-VIObjectByVIView -MORef $Task

        Wait-Task -Task (Get-Task -Id $TaskObject.Id)

        $Results = $TaskObject.ExtensionData.Info.Result

    } catch {

        Write-Information -MessageData "There was an error running the compliance task: $($Error[0].Exception)" -InformationAction Continue

        break

    }

    $Output = @()

    # Check if it's compliant or not.

    if($Results.Count -eq 1 -and $Results[0].ComplianceStatus -eq "compliant") {

        Write-Information -MessageData "This Host is compliant." -InformationAction Continue

        break

    } else {

        $Failures = $Results[0].Failure

        foreach($Failure in $Failures) {

            # Check for the failures and make them more readable!

            $Type = $Failure.FailureType.split(".")[$Failure.FailureType.split(".").count-1]

            $Message = $Failure.Message.Message

            $Output += "Compliance Failure Type: $Type, Message: $Message"

        }

    }

    return $Output

}

Highlighted
Contributor
Contributor

That's some solid tech info.  Much appreciated.  I've taken down the whole thing into my personal notes.

0 Kudos