Comment 33 for bug 1321885

Revision history for this message
Rick Masters (grick23) wrote : Re: IMPI detection and automatic setting fail in ubuntu 14.4 maas

Please fix the typos in the title of this bug (IMPI/IPMI and 14.4/14.04); they make it hard to find.

The root cause of this issue is that a least one type of BMC does not report back at least one setting (Enable_User) that has been configured correctly.

This was not a problem in 12.04 because earlier versions of maas do not attempt to verify that the BMC settings have been set correctly after configuring them. Previously, it just set the values and moved on. Now that the maas_ipmi_autodetect.py code attempts to read back the values, it is failing, even though the correct values appear to be in effect.

This issue is affecting Dell PowerEdge SC1435 and Dell 2970 models and probably others that use the same BMC. Note that these are fairly popular models. This was reproduced on a Dell SC1435 with 2.2.5 BIOS, which I believe is the latest. This is reproducable on multiple machines. Other Dell models (710s and 620s) do not exhibit this issue.

Here is an example on an SC1435:

manager@maas-ctrl-2:~$ sudo bmc-config --checkout --key-pair=User1:Username
Section User1
        ## Give Username
        ## Username NULL
EndSection
manager@maas-ctrl-2:~$ sudo bmc-config --checkout --key-pair=User2:Username
Section User2
        ## Give Username
        Username root
EndSection
manager@maas-ctrl-2:~$ sudo bmc-config --checkout --key-pair=User3:Username
Section User3
        ## Give Username
        Username maas
EndSection
manager@maas-ctrl-2:~$ sudo bmc-config --checkout --key-pair=User2:Enable_User
Section User2
        ## Possible values: Yes/No or blank to not set
        ## Enable_User
EndSection
manager@maas-ctrl-2:~$ sudo bmc-config --checkout --key-pair=User3:Enable_User
Section User3
        ## Possible values: Yes/No or blank to not set
        ## Enable_User
EndSection
manager@maas-ctrl-2:~$ sudo bmc-config --commit --key-pair="User2:Enable_User=Yes"
manager@maas-ctrl-2:~$ sudo bmc-config --checkout --key-pair=User2:Enable_User
Section User2
        ## Possible values: Yes/No or blank to not set
        ## Enable_User
EndSection
manager@maas-ctrl-2:~$

Note that if you disable the verification by commenting it out, then everything works fine.

Steps to perform the workaround on the maas server:

sudo vi /etc/maas/templates/commissioning-user-data/snippets/maas_ipmi_autodetect.py

Change this function to comment out the last line as shown:

def apply_ipmi_user_settings(user_settings):
    """Commit and verify IPMI user settings."""
    username = user_settings['Username']
    ipmi_user_number = pick_user_number(username)

    for key, value in user_settings.iteritems():
        bmc_user_set(ipmi_user_number, key, value)

    #verify_ipmi_user_settings(ipmi_user_number, user_settings)

While it seems clear the BMC should return the proper values, even if that got fixed (which I'll guess won't happen anytime soon), upgrading IPMI firmware is not an easy task for the casual user with Dell machines. See http://www.yellow-bricks.com/2011/06/27/dell-firmware-updates. Therefore, please consider this a request for MaaS to work with this behavior. Perhaps the verification should be disabled by default or that the BMC model be detected beforehand to determine (perhaps against a blacklist) whether verification should be attempted.