The Puppet Labs Issue Tracker has Moved:

Bug #14162

Solaris 10 installer for PE 2.5.1 barfs

Added by Jeff Blaine over 2 years ago. Updated over 2 years ago.

Status:ClosedStart date:04/24/2012
Priority:HighDue date:
Assignee:Moses Mendoza% Done:


Target version:Commercial edition - PE 2.5.2
Keywords: Affected URL:
Branch: Affected PE version:2.0.0

We've Moved!

Ticket tracking is now hosted in JIRA:

This issue is currently not available for export. If you are experiencing the issue described below, please file a new ticket in JIRA. Once a new ticket has been created, please add a link to it that points back to this Redmine ticket.


# ./puppet-enterprise-installer -D -l ../pe.log

Puppet Enterprise v2.5.1 installer

Puppet Enterprise documentation can be found at



solaris 10 only supports agent installation.
?? Puppet agent needs a unique name ("certname") for its
   certificate; this can be an arbitrary string. Certname for this
   node? [Default:]
?? Puppet master hostname to connect to? [Default: puppet]

-> Convenience Links

   The selected Puppet software will be installed into
   "/opt/puppet", which may not be included in your default shell
   PATH. For ease of use, this installer can create symbolic links
   to these executables in "/usr/local/bin".

?? Create symbolic links to Puppet executables in "/usr/local/bin"?
   [Y/n] n



You have selected to install the following components (and their dependencies)
* Puppet Agent

?? Perform installation? [Y/n] y
./puppet-enterprise-installer: line 1789: ${ANSWER_FILE_TO_SAVE?}: ambiguous redirect


!! ERROR: Cancelling installation


Related issues

Related to Puppet Enterprise (Public) - Bug #14164: Solaris 10 SPARC installer for PE 2.5.1 -- wrong hostname... Merged - Pending Release 04/24/2012


#1 Updated by Jeff Blaine over 2 years ago

Anyone? Ideas? Dead in the water here for 9 days.

#2 Updated by Jeff Blaine over 2 years ago

Here’s the problem. You’re botching the hostname/domain name, apparently assuming that the hostname is always set to non-FQDN. All of our hosts are FQDN’d hostnames (which is a known proper practice, BTW).

+ '[' '!' -z './      ' ']'
+ touch ./
+ chmod 600 ./
+ set
+ egrep '^q_'
./puppet-enterprise-installer: line 1789: ${ANSWER_FILE_TO_SAVE?}: ambiguous redirect

#3 Updated by Nigel Kersten over 2 years ago

  • Status changed from Unreviewed to Accepted
  • Assignee set to Matthaus Owens

Haus, raising visibility of this ticket.

#4 Updated by Matthaus Owens over 2 years ago

  • Assignee changed from Matthaus Owens to Moses Mendoza
  • Target version set to PE 2.5.2

Jeff, thanks for raising the issue. The FQDN work there is mainly because solaris doesn’t take hostname -f (well it does but it just changes the hostname to -f, which is usually undesirable).

#5 Updated by Matthaus Owens over 2 years ago

  • Subject changed from Solaris 10 SPARC installer for PE 2.5.1 barfs to Solaris 10 installer for PE 2.5.1 barfs
  • Affected PE version set to 2.0.0

#6 Updated by Moses Mendoza over 2 years ago

  • Status changed from Accepted to In Topic Branch Pending Review

#7 Updated by Matthaus Owens over 2 years ago

  • Status changed from In Topic Branch Pending Review to Merged - Pending Release

#8 Updated by Jeff Blaine over 2 years ago

Also, FWIW

    if [ -z "${PLATFORM_HOSTNAME:-""}" ]; then
        case "${PLATFORM_NAME?}" in
                # Calling hostname --fqdn on solaris will set the hostname to '--fqdn' so we don't do that.
                t_fqdn=`sed -n 's/^\ *domain\ *\(.*\)$/\1/p' /etc/resolv.conf`
                t_host=`uname -n`
                if [ -z $t_fqdn ]; then


t_fqdn is a misleading variable name for what you’re using it for.

You mean to use t_domainname or something similar.

A FQDN, by definition, is of the form: hostname.domainname

As seen in the comment line in your code above, I see you’ve already tried to address this issue (14162), which makes me wonder what ‘hostname’ call you are referring to in this fix that has been merged. For Solaris, you already are NOT calling the hostname command (good!).

I can’t see the changes you committed (404 error for me), but you cannot assume that uname -n will return the short hostname of a host, ever. There is no requirement that it must do that.

I believe that is your issue here.

If I were to implement this, as I understand your goal:

    if `uname -n` has a period in it
        1. set PLATFORM_HOSTNAME to full string and set PLATFORM_HOSTNAME_SHORT to everything in the string up to the first period
        1. set PLATFORM_HOSTNAME_SHORT to the full string
        2. somehow find the domain name, ask if need be!

#9 Updated by Matthaus Owens over 2 years ago

  • Status changed from Merged - Pending Release to Closed

Released in PE 2.5.2

Also available in: Atom PDF