8 Replies Latest reply on Oct 15, 2014 12:35 PM by Jared Murrell

    solaris jumpstart x86 error

      the process is hated at 6/7.

       

      i am not using DHCP server, i am providing a static IP in the system package.

       

      komal-jump-clientInfo1/27/2014 5:50rule checker succeeded
      komal-jump-clientInfo1/27/2014 5:50copying add install client script to //10.98.241.115/export/home/jumpstart/BladeLogic/00-50-56-95-03-60/addInstall.sh
      komal-jump-clientInfo1/27/2014 5:50executing add install client script
      komal-jump-clientInfo1/27/2014 5:50Adding Ethernet number for komal-jump-client to /etc/ethers
      komal-jump-clientError1/27/2014 5:50svcprop
      komal-jump-clientError1/27/2014 5:50:
      komal-jump-clientError1/27/2014 5:50Pattern '
      komal-jump-clientError1/27/2014 5:50network/tftp/udp6:default/:properties/restarter/state
      komal-jump-clientError1/27/2014 5:50' doesn't match any entities
      komal-jump-clientInfo1/27/2014 5:50enabling network/tftp/udp6 service
      komal-jump-clientError1/27/2014 5:50svcadm
      komal-jump-clientError1/27/2014 5:50:
      komal-jump-clientError1/27/2014 5:50Pattern '
      komal-jump-clientError1/27/2014 5:50network/tftp/udp6
      komal-jump-clientError1/27/2014 5:50' doesn't match any instances
      komal-jump-clientInfo1/27/2014 5:50enabling network/rarp service
      komal-jump-clientInfo1/27/2014 5:50enabling network/rpc/bootparams service
      komal-jump-clientInfo1/27/2014 5:50updating /etc/bootparams
      komal-jump-clientError1/27/2014 5:50ln
      komal-jump-clientError1/27/2014 5:50: cannot create
      komal-jump-clientError1/27/2014 5:50/tftpboot//pxegrub.I86PC.Solaris_10-1
      komal-jump-clientError1/27/2014 5:50:
      komal-jump-clientError1/27/2014 5:50File exists
      komal-jump-clientInfo1/27/2014 5:50Create a grub floppy and edit GRUB menu to contain
      komal-jump-clientInfo1/27/2014 5:50the following entry:
      komal-jump-clientInfo1/27/2014 5:50title Solaris netinstall
      komal-jump-clientInfo1/27/2014 5:50  rarp
      komal-jump-clientInfo1/27/2014 5:50  kernel /I86PC.Solaris_10-2/multiboot kernel/unix -B
      komal-jump-clientInfo1/27/2014 5:50boot-args=- install dhcp - install nowin,install_media=
      komal-jump-clientInfo1/27/2014 5:50ip-addr-for-10.98.241.115:
      komal-jump-clientInfo1/27/2014 5:50/export/home/jumpstart/sol_10_509_x86
      komal-jump-clientInfo1/27/2014 5:50",install_boot=10.98.241.115:/export/home/jumpstart/sol_10_509_x86/boot

      "

      komal-jump-clientInfo1/27/2014 5:50  module /I86PC.Solaris_10-2/x86.miniroot
      komal-jump-clientInfo1/27/2014 5:50add install client succeeded
      komal-jump-clientInfo1/27/2014 5:50executing reboot script
      komal-jump-clientInfo1/27/2014 5:50reboot script succeeded
      Run at Jan 27, 2014 5:50:45 AMInfo1/27/2014 5:50

      Executing work item Provision Job:PollForProvisionedWorkItem;  on application server: Training182

       

       

      /tftpboot directory contains :

       

      drwxr-xr-x   5 root     root         512 Jan 28 12:26 .

      drwxr-xr-x  39 root     root        1024 Jan 27 20:08 ..

      drwxr-xr-x   4 root     root         512 Jan 24 19:40 I86PC.Solaris_10-1

      dr-xr-xr-x   3 root     root         512 Jan 24 19:40 I86PC.Solaris_10-2

      lrwxrwxrwx   1 root     root          26 Jan 28 12:18 SUNW.i86pc -> pxegrub.I86PC.Solaris_10-1

      drwxr-xr-x   3 root     root         512 Jan 28 12:26 boot

      lrwxrwxrwx   1 root     root          26 Jan 28 12:26 nbp. -> pxegrub.I86PC.Solaris_10-1

      lrwxrwxrwx   1 root     root          26 Jan 28 12:18 nbp.SUNW.i86pc -> pxegrub.I86PC.Solaris_10-1

      -rwxr-xr-x   1 root     root      135600 Jan 27 19:53 pxegrub.I86PC.Solaris_10-1

      -rw-r--r--   1 root     root         133 Jan 28 12:26 rm.10.98.241.117

      -rw-r--r--   1 root     root         146 Jan 28 12:18 rm.SUNW.i86pc

       

       

      before starting the process i made the required changes in native add_install_client script as :

       

      if [ "${CONFIG_SERVER}" ]; then

         printf "\tkernel /${BootLofs}/multiboot " >> $Menufile

         printf "kernel/unix - install nowin -B ${BARGLIST}" >> $Menufile

         HOST_ADDR=""

         get_hostaddr ${CONFIG_SERVER}

         printf "install_config=" >> $Menufile

         printf "${HOST_ADDR:-${CONFIG_SERVER}}" >> $Menufile

         printf ":${CONFIG_PATH}," >> $Menufile

      else

         printf "\tkernel /${BootLofs}/multiboot " >> $Menufile

         printf "kernel/unix - install nowin -B ${BARGLIST}" >> $Menufile

      fi

       

       

       

      client machine :

      cli.PNG.png

      i ran this command as mentioned in the link (https://docs.bmc.com/docs/display/NP/BSA%2BProvisioning%2BSolaris)


      ./add_install_client -d SUNW.i86pc i86pc


      Result is :

      cleaning up preexisting install client "SUNW.i86pc"

      svcprop: Pattern 'network/tftp/udp6:default/:properties/restarter/state' doesn't match any entities

      enabling network/tftp/udp6 service

      svcadm: Pattern 'network/tftp/udp6' doesn't match any instances

       

       

      If not already configured, enable PXE boot by creating

      a macro named PXEClient:Arch:00000:UNDI:002001 with:

        Boot server IP (BootSrvA) : ::1

        Boot file      (BootFile) : SUNW.i86pc

       

      why boot server ip is not coming in this.

       

      kindly help

        • 1. Re: solaris jumpstart x86 error
          Bill Robinson

          you shouldn't need to re-run the add_install_client - the provisioning job will do that.

           

          what dhcp options do you have set ?  is bsa pxe running on the same network ? (sol x86 does not use the bsa pxe server)

          • 2. Re: solaris jumpstart x86 error

            i didnt set any DHCP option as i am providing static IP, netmask and gateway in the system package.

             

            i have installed pxe on the BSA server only which i previously used for windows and linux provisioning.

             

            if i need to set any dhcp options, please mention. and if i need to install pxe on any other machine, please mention the way

            • 3. Re: solaris jumpstart x86 error
              Bill Robinson

              the box is still using bootp/dhcp to boot so i'm not talking about dhcp in the new os, but in the network you are trying to do the jumpstart.  also jumpstart on x86 will use pxe from the jumpstart server.  on the doc link you mentioned did you see this section?

               

              Setup DHCP for x86 Solaris

              ISC and Windows DHCP

              For a non-Solaris DHCP, a couple of DHCP options must be defined and then set in the scope servicing the provisioning network[

              • For x86 Solaris you should define the following options:

                 

                option space SUNW;option SUNW.JumpStart-server code 14 = text;

                 

              • In the DHCP Scope the following options should be defined:

                 

                next-server     192.168.65.42;filename "pxegrub.I86PC.Solaris_10-1";vendor-option-space SUNW;option SUNW.JumpStart-server "192.168.65.42:/jumpstart";

                 

              • The 'next-server' option is the IP of the Jumpstart Boot Server (has the tftp images/server)
              • The 'SUNW.JumpStart-server option is the 'IP' of the Jumpstart Install Server and the NFS share path to the root of the Solaris media
              • The 'filename' option is the name of the tftp image to boot from, located under the /tftpboot directory on the Jumpstart Boot Server. Note that this file is copied and removed by the add_install_client/rm_install_client scripts and may not always be present in the directory.
              • 4. Re: solaris jumpstart x86 error

                In the link, configuration is for windows dhcp. the link for solaris dhcp is redirecting to a wrong page.

                 

                In my scenario, I have configured the dhcp server in the same solaris jumpstart server. now what changes  should i make in the system package?

                 

                do i need to create the macro in the dhcp manually or it will be created by BL?

                 

                now after dhcp configuration, the client machine snapshot is :

                 

                Capture.PNG.pngclien

                 

                client ip : 10.98.241.117 (it is the same i mentioned in the system package)

                dhcp ip : 10.98.241.115 (it is the ip of jumpstart and dhcp server)

                • 5. Re: solaris jumpstart x86 error
                  Bill Robinson

                  why not put the dhcp/bootp on the pxe box since we have some instructions for that ?  i'm not sure what needs to be configured for jumpstart support for a solaris dhcp - bigadmin would probably have it.  but where is your dhcp right now?  is it on the same network as the solaris dhcp ?  that's not really going to work.

                   

                  when the target box boots, it has no OS - it needs a bootp/dhcp server to get to the point of getting an ip and pulling down the miniroot - this has nothing to do w/ what ip information the target system will have afaik.

                   

                  right now it looks like the box is being picked up by the bladelogic pxe server which you do not want.  you should register the mac address in the 'devices' workspace in bladelogic and set the type to solaris i86pc - i believe that will let the blade pxe ignore it.

                   

                  then we need to figure out how to get the target talking to the solaris pxe.

                  • 6. Re: solaris jumpstart x86 error
                    Jared Murrell

                    I have some info posted here, if this is still relevant:

                     

                    https://communities.bmc.com/ideas/7483

                     

                    Oracle Solaris 10 x86 System Package

                     

                    Even though the IP is specified in the System Package, Jumpstart still has to know what to do when the DHCP request comes in, so the pntadm and dhtadm commands need to be run. I can create an 8.3 version of the zipkit if interested

                    • 7. Re: solaris jumpstart x86 error
                      Bill Robinson

                      can't the add_install_client take care of that ?

                      • 8. Re: Re: solaris jumpstart x86 error
                        Jared Murrell

                        It does... here's what I have in my zipkit:

                         

                        add_install_client -d  \

                        -b boot-args='-v - install dhcp - install nowin' \

                        -e ??DEVICE.MAC_ADDRESS?? \

                        -s ??DATA_STORE.INSTALL_SERVER??:??DATA_STORE.INSTALL_SERVER_FULL_PATH?? \

                        -c ??DATA_STORE.CONFIG_SERVER??:??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/??DEVICE.MAC_ADDRESS?? \

                        -p ??DATA_STORE.CONFIG_SERVER??:??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/??DEVICE.MAC_ADDRESS?? \

                        i86pc

                        ############################################

                        # Get the DHCP subnet to add the client to #

                        ############################################

                        cat > /tmp/getnet.sh <<EOF

                        #!/bin/bash

                        function netcalc() {

                            local IFS='.' ip i

                            local -a oct msk

                            read -ra oct <<<"\$1"

                            read -ra msk <<<"\$2"

                            for i in \${!oct[@]}; do

                                ip+=( "\$(( oct[i] & msk[i] ))" )

                            done

                            echo "\${ip[*]}"|sed s/^.//

                        }

                        echo \`netcalc ??IP_ADDRESS?? ??SUBNET_MASK??\`

                        EOF

                        chmod +x /tmp/getnet.sh

                        ########################################################

                        # The name of the file containing the boot information #

                        ########################################################

                        BOOTFILE=`echo "01??DEVICE.MAC_ADDRESS??"|sed 's/-//g'`

                        ###################################

                        # Calculate the network address,  #

                        # based on the IP and subnet mask #

                        ###################################

                        DHCP_SUBNET=`/tmp/getnet.sh`

                        ##################################

                        # Change the MAC address to have #

                        # colons instead of dashes, and  #

                        # make it lower-case             #

                        ##################################

                        NEW_MAC=`echo "??DEVICE.MAC_ADDRESS??"|sed 's/-/:/g'|tr '[A-Z]' '[a-z]'`

                        #####################################

                        # The IP address of the BOOT server #

                        # (not the IP the client sees, but  #

                        # the IP it registers to)           #

                        #####################################

                        OWNERIP=`getent hosts \`hostname\` | awk {'print $1'}`

                        ######################################

                        # Change the hostname to lower-case, #

                        # since it matters in Solaris        #

                        ######################################

                        HOST_NAME=`echo "??HOST_NAME??"|tr '[A-Z]' '[a-z]'`

                        ##########################

                        # Update some boot files #

                        ##########################

                        /usr/bin/perl -pi -e 's/'${OWNERIP}'/??DATA_STORE.BOOT_SERVER??/g' /tftpboot/menu.lst.${BOOTFILE}

                        /usr/bin/perl -pi -e 's/timeout=30/timeout=5/' /tftpboot/menu.lst.${BOOTFILE}

                        /usr/bin/perl -pi -e 's/-B install_config/-B input-device=??DEVICE.TERMINAL??,output-device=??DEVICE.TERMINAL??,acpi-user-options=??DEVICE.ACPI_Options??,disable-ohci=true,disable-ehci=true,disable-uhci=true,install_config/' /tftpboot/menu.lst.${BOOTFILE}

                        /usr/bin/perl -pi -e 's/PRIMARY/??DEVICE.PRIMARY_INTERFACE??/' ??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/??DEVICE.MAC_ADDRESS??/sysidcfg

                        if /opt/bmc/bladelogic/NSH/bin/grep -q ${HOST_NAME} /etc/hosts;then echo "host already exists in /etc/hosts";else echo "??IP_ADDRESS??  ${HOST_NAME}" >> /etc/hosts;fi

                        if /opt/bmc/bladelogic/NSH/bin/grep -q ${HOST_NAME} /etc/inet/hosts;then echo "host already exists in /etc/inet/hosts";else echo "??IP_ADDRESS??  ${HOST_NAME}" >> /etc/inet/hosts;fi

                        if /opt/bmc/bladelogic/NSH/bin/grep -q ${HOST_NAME} /etc/inet/ipnodes;then echo "host already exists in /etc/inet/ipnodes";else echo "??IP_ADDRESS??  ${HOST_NAME}" >> /etc/inet/ipnodes;fi

                        if /opt/bmc/bladelogic/NSH/bin/grep -q "${NEW_MAC}" /etc/ethers;then echo "host already exists in /etc/ethers";else echo "${NEW_MAC} ${HOST_NAME}" >> /etc/ethers;fi

                        ########################################

                        # Copy some custom scripts for install #

                        ########################################

                        cp -R ??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/scripts ??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/??DEVICE.MAC_ADDRESS??

                        #########################################################################

                        # Don't try to run pntadm or dhtadm if it's adding a host already      #

                        # otherwise it will silently fail and there will be no DHCP reservation #

                        #########################################################################

                        DPID=`ps -ef|egrep "[d]htadm|[p]ntadm"|awk {'print $2'}`

                         

                         

                        while [ "$DPID" -gt 0 ]

                        do

                          # Generate a random sleep time between 1 and 10 seconds

                          NUM=`/usr/bin/perl -e 'print int rand 10'`

                          echo "Waiting on process ID $DPID to add DHCP reservation..."

                          sleep $NUM

                          DPID=`ps -ef|egrep "[d]htadm|[p]ntadm"|awk {'print $2'}`

                        done

                        ##################################################################

                        # Make sure the DHCP Reservation and Boot Macro are set properly #

                        ##################################################################

                        pntadm -D ??IP_ADDRESS?? -y ${DHCP_SUBNET} 2>&1

                        pntadm -A ??IP_ADDRESS?? -h ${HOST_NAME} -i ${BOOTFILE} -m ${HOST_NAME} -s ${OWNERIP} ${DHCP_SUBNET} 2>&1

                        dhtadm -D -m ${HOST_NAME} 2>&1

                        dhtadm -A -m ${HOST_NAME} -d ":BootFile=${BOOTFILE}:BootSrvA=??DATA_STORE.BOOT_SERVER??:" 2>&1

                        #######################################

                        # This step is required for new hosts #

                        # that have no previous reservation  #

                        #######################################

                        /etc/init.d/dhcp stop

                        /etc/init.d/dhcp start

                        ###########################

                        # Make sure NFS is shared #

                        ###########################

                        /usr/sbin/shareall

                        #########################

                        # Remove the temp files #

                        #########################

                        rm -f /tmp/getnet.sh

                        ######################################################################

                        # Link the RSCD installer so the HDD doesn't fill up for many builds #

                        ######################################################################

                        ln -f ??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/rscd/rscd-sol-x86.sh ??DATA_STORE.CONFIG_SERVER_FULL_PATH??/BladeLogic/??DEVICE.MAC_ADDRESS??/rscd.sh

                         

                         

                        ########################################################

                        # Fix the macro, since it gets messed up now and again #

                        ########################################################

                        pntadm -M ??IP_ADDRESS?? -i ${BOOTFILE} -f 03 ${DHCP_SUBNET} 2>&1