Details
Description
We are running an environment of RHEL 6 and 7 and recently started puppetizing our Mac computers as well. When puppetizing the macs, we wanted to use the Homebrew module found in the forge. After doing no more than adding this module to our Puppetfile, RHEL 6 systems could no longer run Puppet. These systems throw the following error:
Info: Loading facts
|
Error: Could not autoload puppet/provider/package/brew: /var/lib/puppet/lib/puppet/provider/package/brew.rb:99: syntax error, unexpected ':', expecting ')' |
...o, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:100: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:106: syntax error, unexpected ':', expecting ')' |
...*install_options], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:123: syntax error, unexpected ':', expecting ')' |
...l, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:124: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:134: syntax error, unexpected ':', expecting ')' |
...e, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:135: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
Error: Could not autoload puppet/type/package: Could not autoload puppet/provider/package/brew: /var/lib/puppet/lib/puppet/provider/package/brew.rb:99: syntax error, unexpected ':', expecting ')' |
...o, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:100: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:106: syntax error, unexpected ':', expecting ')' |
...*install_options], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:123: syntax error, unexpected ':', expecting ')' |
...l, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:124: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:134: syntax error, unexpected ':', expecting ')' |
...e, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:135: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
Error: Could not retrieve catalog from remote server: Could not intern from text/pson: Could not autoload puppet/type/package: Could not autoload puppet/provider/package/brew: /var/lib/puppet/lib/puppet/provider/package/brew.rb:99: syntax error, unexpected ':', expecting ')' |
...o, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:100: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:106: syntax error, unexpected ':', expecting ')' |
...*install_options], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:123: syntax error, unexpected ':', expecting ')' |
...l, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:124: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:134: syntax error, unexpected ':', expecting ')' |
...e, resource_name], failonfail: true) |
^
|
/var/lib/puppet/lib/puppet/provider/package/brew.rb:135: syntax error, unexpected tASSOC |
rescue Puppet::ExecutionFailure => detail
|
^
|
Warning: Not using cache on failed catalog
|
Error: Could not retrieve catalog; skipping run
|
It appears that these systems, which are limited to Ruby 1.8.7, are attempting to compile the providers included Homebrew module despite having no references to it and the providers being constrained to Darwin systems.
A work around is to have the Macs on a separate environment with just the Homebrew module added to the Puppetfile. But, that's not a good solution.