4 Replies Latest reply on Nov 12, 2010 10:33 AM by Andres Alvarez

    Solaris Provisioning propfile.txt

    Andres Alvarez

      Hi all,

       

      I have configured and working my Solaris provisioning job in BladeLogic, but now need to join this with Atrium Orchrestator.

       

      My process for Linux and Windows work fine with the following command and propfile.txt file:

       

      blcli_execute provisionDevice 54657 00-50-56-b3-0c-cb 0 file: / / / c: / bao / propfile.txt

       

      My propfile.txt (for Linux, work fine)

       

      # MAKE SURE NO LEADING OR TRAILING IN VALUE WHITESPACE
      SystemPackage.LocalProperty.DATA_STORE = Class: / / systemobject / DataStore / PXE DataStore / Linux Datastore
      SystemPackage.LocalProperty.NAME = SYNBLPILRH32
      Network.DHCPEnabled = true
      Network.AutoDNSEnabled = true
      # SystemPackage.LocalProperty.DEF_GATEWAY =
      # SystemPackage.LocalProperty.DNS_SERVER = 10.10.37.129
      Job.Provision.JOB_FOLDER_ID = 2000118
      Job.Provision.JOB_NAME = Linux_x86_SYNBLPILRH32

       

      Now when i run the same blcli command for Solaris, I have a java exception error:

       

      Caused by: java.lang.IllegalArgumentException: not available classField

       

      My propfile.txt for Solaris has been modified and is as follows:

       

      # MAKE SURE NO LEADING OR TRAILING IN VALUE WHITESPACE
      SystemPackage.LocalProperty.DATA_STORE = Class: / / systemobject / DataStore / Jumpstart DataStore / JUMPSTART
      SystemPackage.LocalProperty.NAME = SYNBLPILSOL05
      Network.EnablePrimaryInterface = true
      Network.UseIPv6 = false
      Network.NameService.Type = NONE
      Network.DHCPEnabled = true
      # Network.AutoDNSEnabled = true
      # SystemPackage.LocalProperty.DEF_GATEWAY =
      # SystemPackage.LocalProperty.DNS_SERVER = 10.10.37.129
      Job.Provision.JOB_FOLDER_ID = 2000120
      Job.Provision.JOB_NAME = Solaris_x64_SYNBLPILSOL05
      # SystemPackage.LocalProperty.IP_ADDRESS =
      # SystemPackage.LocalProperty.SUBNET_MASK =

       

      I do not understand why the error. Someone has a propfile.txt for Solaris that is running I can with that?

       

      Anyone have a suggestion or comments?

       

      Thanks in advance

       

      Andres Alvarez

        • 1. Re: Solaris Provisioning propfile.txt
          Joshua Skirde

          Hi Andres,

           

          I'm assuming you've double checked your instance name is JUMPSTART and that you have appropriate permissions with the user used in the blcred.

          It looks to me that the error is complaining about the SystemPackage.LocalProperty.DATA_STORE as it's the only one that's expecting a class (or instance more precisely).

          Have you tried upping the log level to see if that yields any further information?

           

          Kind regards,

          Joshua

          • 2. Re: Solaris Provisioning propfile.txt
            Andres Alvarez

            Hi Joshua,

             

            My provisioning Solaris job work fine in BladeLogic with datastore parameters. Problem is with blcli command.

            Respect to log, yes, i ran blcli command with high level debug. Results here:

             

            [03 Nov 2010 16:45:33,602] [Client-Connections-Thread-11] [WARN] [BLAdmin:BLAdmins:192.168.150.77] [Client] Unexpected exception while handling request.com.bladelogic.model.provision.ProvisionDeviceService_provision(com.bladelogic.model.provision.systempackage.SystemPackage, com.bladelogic.model.server.Server, com.bladelogic.model.provision.ProvDevice, java.lang.String, java.lang.String, int)
            com.bladelogic.mfw.util.BlException: Unexpected exception while handling request.com.bladelogic.model.provision.ProvisionDeviceService_provision(com.bladelogic.model.provision.systempackage.SystemPackage, com.bladelogic.model.server.Server, com.bladelogic.model.provision.ProvDevice, java.lang.String, java.lang.String, int)
                at com.bladelogic.app.api.manage.APIMethodInvocationProvider.executeRequest(APIMethodInvocationProvider.java:67)
                at com.bladelogic.app.api.manage.APIMethodInvocationProvider.invoke(APIMethodInvocationProvider.java:42)
                at com.bladelogic.app.service.routing.RoutingServiceImpl.invokeMethodLocally(RoutingServiceImpl.java:319)
                at com.bladelogic.app.service.routing.RoutingServiceImpl.invoke(RoutingServiceImpl.java:246)
                at com.bladelogic.app.api.manage.APIRequestManager.executeRequest(APIRequestManager.java:30)
                at com.bladelogic.message.app.frame.APIMessageFrame.service(APIMessageFrame.java:90)
                at com.bladelogic.mfw.net.ClientWorkerThread.processRequest(ClientWorkerThread.java:370)
                at com.bladelogic.mfw.net.ClientWorkerThread.processClientRequest(ClientWorkerThread.java:280)
                at com.bladelogic.mfw.net.ClientWorkerThread.handleClientRequest(ClientWorkerThread.java:180)
                at com.bladelogic.mfw.net.ClientWorkerThread.execute(ClientWorkerThread.java:99)
                at com.bladelogic.mfw.net.ClientWorkerThread.execute(ClientWorkerThread.java:25)
                at com.bladelogic.app.service.thread.BlBlockingThread.run(BlBlockingThread.java:92)
            Caused by: java.lang.IllegalArgumentException: classField not available
                at com.bladelogic.model.generic.GenericModelObjectImpl.getValue(GenericModelObjectImpl.java:1572)
                at com.bladelogic.model.provision.systempackage.SystemPackageImpl.resolveStringForDeviceProperty(SystemPackageImpl.java:4589)
                at com.bladelogic.model.provision.systempackage.SystemPackageImpl.resolveString(SystemPackageImpl.java:2081)
                at com.bladelogic.model.provision.systempackage.SystemPackageImpl.resolvePropertyValues(SystemPackageImpl.java:1243)
                at com.bladelogic.model.provision.systempackage.SystemPackageImpl.replacePropertiesAndSave(SystemPackageImpl.java:544)
                at com.bladelogic.model.provision.ProvisionDeviceServiceImpl.provision(ProvisionDeviceServiceImpl.java:452)
                at com.bladelogic.model.provision.ProvisionDeviceServiceImpl.provision(ProvisionDeviceServiceImpl.java:431)
                at com.bladelogic.model.provision.ProvisionDeviceServiceImpl.provision(ProvisionDeviceServiceImpl.java:414)
                at com.bladelogic.model.provision.ProvisionDeviceServiceImpl.provision(ProvisionDeviceServiceImpl.java:248)
                at com.bladelogic.model.provision.ProvisionDeviceServiceRequestHandlerImpl.provision_18(ProvisionDeviceServiceRequestHandlerImpl.java:853)
                at com.bladelogic.model.provision.ProvisionDeviceServiceRequestHandlerImpl.execute(ProvisionDeviceServiceRequestHandlerImpl.java:282)
                at com.bladelogic.app.api.manage.APIMethodInvocationProvider.executeRequest(APIMethodInvocationProvider.java:57)
                ... 11 more

             

            Thanks,

             

            Andres.

            • 3. Re: Solaris Provisioning propfile.txt
              Joshua Skirde

              Hi Andres,

               

              Okay, I think I may have worked out what's going on.

              The line "SystemPackage.LocalProperty.NAME = SYNBLPILSOL05" is trying to set the local property NAME of the SYSTEM package. However this field is locked by the system as it is the local variable used to hold the name of the system package.

               

              I'd suggest opening your system package in the GUI, going to the "Local Properties" Tab and adding a local variable like MY_HOSTNAME or something. Then in the "Basic Config" tab, change the Computer Name / OM Server Name to ??MY_HOSTNAME?? as appropriate.

              Finally, open up your propfile.txt and change this:

                 SystemPackage.LocalProperty.NAME = SYNBLPILSOL05

              to this:

                 SystemPackage.LocalProperty.MY_HOSTNAME = SYNBLPILSOL05

               

              Give that a shot and let me know of the results.

               

              Kind regards,

              Joshua

              • 4. Re: Solaris Provisioning propfile.txt
                Andres Alvarez

                Hi Joshua and all.

                 


                Problem was related to an variable defined in add_install_client script configuration in System Package for Solaris x86.

                 


                In summary, problem was ??DEVICE.ARCHITECTURE?? variable. This don't exist in devices jumpstartx86 imported in BladeLogic. For this the error:

                 

                Caused by: java.lang.IllegalArgumentException: classField not available

                 


                Solution was add to system package an local property named ARCHITECTURE  and set this as i86pc, additionally modified ??DEVICE.ARCHITECTURE?? in  the end of chain in add_install_client for ??ARCHITECTURE??.

                 


                This workaround work fine for me, but BMC tell me this issue is an bug fixed in 8.0 SP6.

                 


                For reference, view ID: QM001675227 in BladeLogic documentations.

                 


                Regards,

                 


                Andres Alvarez

                 

                Software Consultant Automation