Skip to content
This repository has been archived by the owner on Jun 4, 2021. It is now read-only.

Common problems and solutions

smcclellan edited this page Jul 3, 2018 · 26 revisions

undefined method `encode_www_form' for URI:Module

This results from using an older version of Ruby to run the razor-client. It is recommended to use 1.9.3 for the client, though later versions should work too. The ticket tracking the fix for this is here.

404 error occurs when trying to reach Razor Server API

This can be caused by the server not starting up properly. Look at the server logs (/var/log/puppetlabs/razor-server/server.log) to see if any errors are mentioned there.

"Cannot convert argument "0", with value: "ProgramFilesX86", for "GetFolderPath"

This occurs when trying to build the Windows 2008R2 winpe image with an older version of Powershell. To fix this issue, install the Windows Management Framework version 4.0.

Windows install hangs on "wpeinit" step

On VMWare, the "starting wpeinit to detect and boot network hardware" message may appear in a frozen state for long periods of time. This can be resolved by going to "Add => New", then 'More options', 'Create a custom virtual machine', then select the image type under Microsoft Windows and continue through the rest of the steps. After that, reboot the machine.

Windows installation shows install screen rather than proceeding automatically

In Windows, if the unattended.xml file does not include all properties that are required by the installer, the installer switches to a manual installation. This probably means a required property was omitted, or an invalid value was supplied. In order to determine the problem with the unattended.xml, look at the setupact.log file.

One possibility is a language mismatch. If the ISO file is not the en-US version, Razor's stock Windows tasks will fail since the en-US UILanguage property is invalid. This should be overridden to match the ISO's actual language.

"Could not boot image: Result too large"

This occurs for a number of reasons related to booting. Most often, either the URL for razor-server is incorrect or the server returned an invalid response. Check the URL displayed in the console just prior to this error message to see what is being returned by visiting it in a browser.

API results only use localhost in the URL, breaking remote razor-client

The URL returned in the /api endpoints is actually generated at runtime based on the hostname you contact. This comes up from the Ruby Rack code, rather than anything we directly control. Generally speaking this tries to resolve your hostname correctly -- and the most common cause of trouble is an entry in /etc/hosts that leads to resolving your server as "localhost" rather than the expected FQDN. Check there first.

Multiple network cards for Redhat task

By default, the Redhat task does not allow multiple network cards. If this capability is needed, run this command, which will modify the kickstart template to add the two devices:

sed -i '/network.*/i\network --bootproto=dhcp --device=eth0\nnetwork --bootproto=dhcp --device=eth1' /opt/puppet/share/razor-server/tasks/redhat.task/kickstart.erb

Other tasks may have similar workarounds available.

Do not use Mac Disk Utility to extract Windows ISO image files

Using Mac Disk Utility to extract Windows ISO files will result in missing file, for example the SPWIZENG.DLL will not be created when extracting Windows 2012R2 ISO image file, the SPWIZENG.DLL file is needed for window setup.

There are many reasons to cause the failure 'Exec Format error' in iPXE boot with Razor, using Mac Disk Utility to extract Windows ISO image is one of them.

VirtualBox "Could not select: Exec format error ( http://ipxe.org/2e008001)" on version 4.3.26

This may be fixed by installing the VirtualBox Extension Pack for 4.3.26 from the official VirtualBox page.

VirtualBox ipxe requires manual restarts during OS installation

If you are not installing Windows, ensure the "Enable APIC" setting is not checked (requiring a maximum of 1 processor) for nodes being installed. This will bypass requiring manual restarts between warm boots. If you are installing Windows, however, you'll need the "Enable APIC" setting checked for nodes to prevent an error with a "Status" of 0xc0000225. With "Enable APIC" checked, due to a bug in VirtualBox, you'll need to manually hard-reboot (power-cycle) the machine when Razor tells it to warm-reboot. This is because warm reboots don't respond properly to the DHCP info, specifically the Request stage of DORA (Discover/Offer/Request/Acknowledge) times out. The reported error code for this issue is 0x040ee119.

One method to get around this DHCP timeout is to boot from an ipxe floppy device, which will go through the installation without intervention at the various reboots.

Build the ipxe.dsk floppy image:

  git clone git://git.ipxe.org/ipxe.git
  cd ipxe/src
  make bin/ipxe.dsk

On your VirtualBox, add the floppy by going to settings->storage->right click in the storage tree box->add floppy controller->add disk->choose disk->your ipxe.dsk. (You need a separate copy of the ipxe.dsk file for each machine if booting more than 1 at once).

spec tests fail on various text related things

Check that your PostgreSQL database was created with the UTF-8 encoding, which we depend on in order to manage text strings correctly. Newer versions default to this, but older versions may default to a locale-specific encoding that will cause failures.

/bin/systemctl status razor-server.status -l error on Centos 7

After getting Postgresql and Razor Server installed, there may be an issue starting the razor-server service with systemd:

JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.binding.http (missing) dependents: [service jboss.web.connector.http]

To address the issue, change the line <socket-binding name='http' port='${http.port:8080}'/> to <socket-binding name='http' port='8080'/> in /var/lib/razor-torquebox/configuration/standalone.xml. This has not been encountered on any other systems.

Ubuntu/Debian tasks require fully qualified URL for razor server

If the URL for the Razor server does not contain a period (e.g. http://razor:8150/svc), the domain will be guessed from the preseed file's provided hostname. This is an unfortunate feature in how the preseed file is fetched from the kernel arguments. See the Debian documentation for more information.

Missing libarchive-devel dependency on el5

Installing Razor Server with the rpm package provided by yum.puppetlabs.com will fail due to missing the dependency libarchive-devel. This can be fixed by enabling the EPEL repo on el5, which provides the libarchive package. More information available at https://fedoraproject.org/wiki/EPEL

Postresql 9.1 or later required

If you are using an older version of Postgresql, you will see an error similar to ERROR -- razor.sequel: Java::OrgPostgresqlUtil::PSQLException: ERROR: syntax error at or near "DEFERRABLE". More information available at https://groups.google.com/forum/#!topic/puppet-razor/Cxcz56GXUbk

ESXi 5.5 install to SD card fails with partitioning error with update 2 and later

If you are installing ESXi 5.5 using a kickstart script, like razor, and are installing to SD card, the install will fail with an error stating "Can't have a partition table outside the disk." The solution is to use ESXi 5.5 update 1 or earlier for the installation.

Clone this wiki locally