Foreman and Puppet 3

Hi @all,

I just figured out that I got two problems after upgrading to Puppet 3. One
is the problem that Puppet 3 isn't working with Passenger from
stealthmonkeys which could be fixed by disabling Passenger, the second,
that Foreman (even the development version) isn't starting anymore what is
a little bit odd because I use foreman as ENC:

$ service foreman start
foreman starten:
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10:
warning: already initialized constant ENC_NONE
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11:
warning: already initialized constant ENC_EUC
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12:
warning: already initialized constant ENC_SJIS
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13:
warning: already initialized constant ENC_UTF8
/usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:252:in convert': Error converting value for param 'hostcert': Error converting value for param 'certdir': Error converting value for param 'ssldir': Could not find value for $confdir (Puppet::Settings::InterpolationError) from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in convert' from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:249:in convert' from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in convert' from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:249:in convert' from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in convert' from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:66:in []' from /usr/share/foreman/lib/foreman/default_settings/loader.rb:43:inload'
from
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in
transaction' from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/transactions.rb:207:intransaction'
from
/usr/share/foreman/lib/foreman/default_settings/loader.rb:28:in load' from /usr/share/foreman/config/initializers/foreman.rb:4 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:inload'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in
load' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:227:inload_dependency'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in
load' from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:201 from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:200:ineach'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:200
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:25:in
instance_exec' from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:25:inrun'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:50:in
run_initializers' from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:49:ineach'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:49:in
run_initializers' from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:134:ininitialize!'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:77:in
send' from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:77:inmethod_missing'
from /usr/share/foreman/config/environment.rb:5
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:in
require' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:inrequire'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:225:in
load_dependency' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:597:innew_constants_in'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:225:in
load_dependency' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:inrequire'
from /usr/share/foreman/config.ru:3
from
/usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb:46:in
instance_eval' from /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb:46:ininitialize'
from /usr/share/foreman/config.ru:1:in `new'
from /usr/share/foreman/config.ru:1
[FEHLGESCHLAGEN]
$

Any hints?

Regards, Thomas

··· -- Linux ... enjoy the ride!

> Hi @all,
>
> I just figured out that I got two problems after upgrading to Puppet 3.
> One is the problem that Puppet 3 isn't working with Passenger from
> stealthmonkeys which could be fixed by disabling Passenger, the second,
> that Foreman (even the development version) isn't starting anymore what is
> a little bit odd because I use foreman as ENC:
>
> $ service foreman start
> foreman starten:
> /usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10:
> warning: already initialized constant ENC_NONE
> /usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11:
> warning: already initialized constant ENC_EUC
> /usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12:
> warning: already initialized constant ENC_SJIS
> /usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13:
> warning: already initialized constant ENC_UTF8
> /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:252:in convert': Error > converting value for param 'hostcert': Error converting value for param > 'certdir': Error converting value for param 'ssldir': Could not find value > for $confdir (Puppet::Settings::InterpolationError) > from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
> from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in
> convert' > from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
> from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:249:in
> convert' > from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
> from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in
> convert' > from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
> from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:249:in
> convert' > from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
> from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in
> convert' > from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
> from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:66:in []' > from > /usr/share/foreman/lib/foreman/default_settings/loader.rb:43:inload'
> from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in
> transaction' > from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/transactions.rb:207:in >transaction'
> from
> /usr/share/foreman/lib/foreman/default_settings/loader.rb:28:in load' > from /usr/share/foreman/config/initializers/foreman.rb:4 > from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in >load'
> from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in
> load' > from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:227:in >load_dependency'
> from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in
> load' > from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17 > /lib/rails/engine.rb:201 > from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:200:in >each'
> from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17
> /lib/rails/engine.rb:200
> from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:25:in
> instance_exec' > from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:25:in >run'
> from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:50:in
> run_initializers' > from > /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:49:in >each'
> from
> /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:49:in
> run_initializers' > from > /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:134:in >initialize!'
> from
> /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:77:in
> send' > from > /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:77:in >method_missing'
> from /usr/share/foreman/config/environment.rb:5
> from
> /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:in
> require' > from > /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:in >require'
> from
> /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:225:in
> load_dependency' > from > /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:597:in >new_constants_in'
> from
> /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:225:in
> load_dependency' > from > /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:in >require'
> from /usr/share/foreman/config.ru:3
> from
> /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb:46:in
> instance_eval' > from > /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb:46:in >initialize'
> from /usr/share/foreman/config.ru:1:in `new'
> from /usr/share/foreman/config.ru:1
> [FEHLGESCHLAGEN]
> $
>
> Any hints?
>

there are some issues with puppet 3, you can apply the following patch [1],
and eventually a similar fix would be integrated into foreman.

Ohad

[1] - https://github.com/theforeman/foreman/pull/166

Regards, Thomas

··· On Mon, Oct 8, 2012 at 3:39 PM, Thomas Bendler wrote: > -- > Linux ... enjoy the ride! > > -- > You received this message because you are subscribed to the Google Groups > "Foreman users" group. > To post to this group, send email to foreman-users@googlegroups.com. > To unsubscribe from this group, send email to > foreman-users+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/foreman-users?hl=en. >

Applied patch
https://github.com/theforeman/foreman/pull/166

But got different error now

undefined method `reject!' for "/etc/puppet/puppet.conf":String

Any one know how to fix this.

Hi Ohad,

> […]
> there are some issues with puppet 3, you can apply the following patch
> [1], and eventually a similar fix would be integrated into foreman.
> […]
> [1] - https://github.com/theforeman/foreman/pull/166
> […]
>

unfortunately that didn't fix the problem, regardless if foreman runs
standalone or as a passenger application:

Ruby (Rack) application could not be started

These are the possible causes:
There may be a syntax error in the application's code. Please check for
such errors and fix them.
A required library may not installed. Please install all libraries that
this application requires.
The application may not be properly configured. Please check whether all
configuration files are written correctly, fix any incorrect
configurations, and restart this application.
A service that the application relies on (such as the database server or
the Ferret search engine server) may not have been started. Please start
that service.
Further information about the error may have been written to the
application's log file. Please check it in order to analyse the problem.
Error message:
Error converting value for param 'hostcert': Error converting value for
param 'certdir': Error converting value for param 'ssldir': Could not find
value for $confdir (Puppet::Settings::InterpolationError)
Exception class:
PhusionPassenger::UnknownError
Application root:
/usr/share/foreman
Backtrace:

File Line Location

0 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 252 in convert' 1 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 ingsub'
2 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 in convert' 3 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 971 invalue'
4 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 249 in convert' 5 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 ingsub'
6 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 in convert' 7 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 971 invalue'
8 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 249 in convert' 9 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 ingsub'
10 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 in convert' 11 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 971 invalue'
12 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 66 in []' 13 /usr/share/foreman/lib/foreman/default_settings/loader.rb 46 inload'
14
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/connection_adapters/abstract/database_statements.rb
139 in transaction' 15 /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/transactions.rb 207 intransaction'
16 /usr/share/foreman/lib/foreman/default_settings/loader.rb 31 in load' 17 /usr/share/foreman/config/initializers/foreman.rb 4 18 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb 236 inload'
19
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb
236 in load' 20 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb 227 inload_dependency'
21
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb
236 in load' 22 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb 201 23 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb 200 ineach'
24 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb 200
25 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb 25 in
instance_exec' 26 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb 25 inrun'
27 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb 50 in
run_initializers' 28 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb 49 ineach'
29 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb 49 in
run_initializers' 30 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb 134 ininitialize!'
31 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb 77 in
send' 32 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb 77 inmethod_missing'
33 /usr/share/foreman/config/environment.rb 5
34 config.ru 3 in require' 35 config.ru 3 36 /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb 46 ininstance_eval'
37 /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb 46 in
initialize' 38 config.ru 1 innew'
39 config.ru 1
Powered by Phusion Passenger, mod_rails / mod_rack for Apache.

Any additional hints?

Regards, Thomas

··· 2012/10/8 Ohad Levy -- Linux ... enjoy the ride!

> Hi Ohad,
>
>
>> […]
>> there are some issues with puppet 3, you can apply the following patch
>> [1], and eventually a similar fix would be integrated into foreman.
>> […]
>> [1] - https://github.com/theforeman/foreman/pull/166
>> […]
>>
>
> unfortunately that didn't fix the problem, regardless if foreman runs
> standalone or as a passenger application:
>
> Ruby (Rack) application could not be started
>
> These are the possible causes:
> There may be a syntax error in the application's code. Please check for
> such errors and fix them.
> A required library may not installed. Please install all libraries that
> this application requires.
> The application may not be properly configured. Please check whether all
> configuration files are written correctly, fix any incorrect
> configurations, and restart this application.
> A service that the application relies on (such as the database server or
> the Ferret search engine server) may not have been started. Please start
> that service.
> Further information about the error may have been written to the
> application's log file. Please check it in order to analyse the problem.
> Error message:
> Error converting value for param 'hostcert': Error converting value for
> param 'certdir': Error converting value for param 'ssldir': Could not find
> value for $confdir (Puppet::Settings::InterpolationError)
> Exception class:
> PhusionPassenger::UnknownError
> Application root:
> /usr/share/foreman
> Backtrace:
> # File Line Location
> 0 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 252 in convert' > 1 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 ingsub'
> 2 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 in convert' > 3 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 971 invalue'
> 4 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 249 in convert' > 5 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 ingsub'
> 6 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 in convert' > 7 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 971 invalue'
> 8 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 249 in convert' > 9 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 ingsub'
> 10 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 243 in convert' > 11 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 971 invalue'
> 12 /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb 66 in []' > 13 /usr/share/foreman/lib/foreman/default_settings/loader.rb 46 inload'
> 14 /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17
> /lib/active_record/connection_adapters/abstract/database_statements.rb 139 in
> transaction' > 15 /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17 > /lib/active_record/transactions.rb 207 intransaction'
> 16 /usr/share/foreman/lib/foreman/default_settings/loader.rb 31 in load' > 17 /usr/share/foreman/config/initializers/foreman.rb 4 > 18 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17 > /lib/active_support/dependencies.rb 236 inload'
> 19 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17
> /lib/active_support/dependencies.rb 236 in load' > 20 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17 > /lib/active_support/dependencies.rb 227 inload_dependency'
> 21 /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17
> /lib/active_support/dependencies.rb 236 in load' > 22 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb 201 > 23 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb 200 in >each'
> 24 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb 200
> 25 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb
> 25 in instance_exec' > 26 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb > 25 inrun'
> 27 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb
> 50 in run_initializers' > 28 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb > 49 ineach'
> 29 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb
> 49 in run_initializers' > 30 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb > 134 ininitialize!'
> 31 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb 77 in
> send' > 32 /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb 77 in >method_missing'
> 33 /usr/share/foreman/config/environment.rb 5
> 34 config.ru 3 in require' > 35 config.ru 3 > 36 /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb 46 in >instance_eval'
> 37 /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb 46 in
> initialize' > 38 config.ru 1 innew'
> 39 config.ru 1
> Powered by Phusion Passenger, mod_rails / mod_rack for Apache.
>
> Any additional hints?
>

are you sure you applied the whole patch - e.g.
https://github.com/theforeman/foreman/pull/166.patch

Ohad

··· On Tue, Oct 9, 2012 at 10:44 AM, Thomas Bendler wrote: > 2012/10/8 Ohad Levy

Regards, Thomas

Linux … enjoy the ride!


You received this message because you are subscribed to the Google Groups
"Foreman users" group.
To post to this group, send email to foreman-users@googlegroups.com.
To unsubscribe from this group, send email to
foreman-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/foreman-users?hl=en.

There are known issues with variable interpolation in the Puppet3
parser - can you ensure you replace any in your puppet.conf with
explicit paths and try again?

Greg

··· On 9 October 2012 09:44, Thomas Bendler wrote: > Error converting value for param 'hostcert': Error converting value for > param 'certdir': Error converting value for param 'ssldir': Could not find > value for $confdir (Puppet::Settings::InterpolationError)

Hi Ohad,

> […]
> are you sure you applied the whole patch - e.g.
> https://github.com/theforeman/foreman/pull/166.patch
> […]
>

think so, if I read the patch correctly, this should be the result,
shouldn't it?

$ rpm -V foreman
S.5…T. c /etc/foreman/database.yml
…5…T. c /etc/foreman/email.yaml
S.5…T. c /etc/foreman/settings.yaml
S.5…T. c /etc/sysconfig/foreman
S.5…T. /usr/share/foreman/config/initializers/puppet.rb
S.5…T. /usr/share/foreman/lib/foreman/default_settings/loader.rb
$ head -17 /usr/share/foreman/config/initializers/puppet.rb

This unfortunately has to get called before the "require 'puppet'".

require 'active_support/dependencies'
module ActiveSupport
module Dependencies
def unhook!
end
end
end

require 'puppet'
require 'puppet/rails'

if Puppet::PUPPETVERSION.to_i < 3
Puppet.parse_config
end

$puppet = Puppet.settings.instance_variable_get(:@values) if Rails.env ==
"test"
$ cat /usr/share/foreman/lib/foreman/default_settings/loader.rb
[…]
def load(reset=false)
if Puppet::PUPPETVERSION.to_i >= 3

Puppet.settings.initialize_global_settings(SETTINGS[:puppetconfdir])
end

      # We may be executing something like rake db:migrate:reset, which

destroys this table; only continue if the table exists
Setting.first rescue return
[…]
$

Did I miss something? I use the foreman test release for RHEL6 on SL 6.3:

$ rpm -q foreman
foreman-1.0.1-2.el6.noarch
$ lsb_release -d
Description: Scientific Linux release 6.3 (Carbon)
$

Regards, Thomas

··· 2012/10/9 Ohad Levy -- Linux ... enjoy the ride!

Hi Greg,

··· 2012/10/9 Greg Sutcliffe

[…]
There are known issues with variable interpolation in the Puppet3
parser - can you ensure you replace any in your puppet.conf with
explicit paths and try again?
[…]

does this only apply to settings in puppet.conf? If so, yes, all variables
have been replaced:

$ cat puppet.conf

/etc/puppet/puppet.conf

Puppet configuration file

[main]
confdir = /etc/puppet
vardir = /var/lib/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = /var/lib/puppet/ssl
classfile = /var/lib/puppet/classes.txt

# Report Transactions to master puppet server
report = true
report_server = puppet.int.domain.local
reports = log,foreman
summarize = true
usecacheonfailure = true

# Fact synchronisation
pluginsync = true

# The server through which to send email reports.
smtpserver = mail.int.domain.local

[agent]
# Interval and master
runinterval = 3600
server = puppet.int.domain.local

# Report actions to master
report = true

# Graph dependencies
graph = true

[master]
# Settings for local database used by puppetmaster
storeconfigs = true
dbadapter = mysql
dbuser = puppet
dbpassword = XXXXXXXXXXXXXXXXXX
dbserver = localhost
dbconnections = 10
dbsocket = /var/lib/mysql/mysql.sock

# Syslog settings
syslogfacility = user

# Settings for reporting
rrdgraph = true

# Fix SSL settings
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

# Manage Puppet nodes configuration with Foreman
external_nodes = /etc/puppet/node.rb
node_terminus = exec

$

Regards, Thomas

Linux … enjoy the ride!

Hi @all,

> […]
>

I did some additional investigation and figured out, that starting foreman
manually, without init script or passenger, result in a working foreman
instance:

$ netstat -tulpn | grep 3000
tcp 0 0 :::3000 :::*
LISTEN 15155/httpd
$ cd /etc/httpd/conf.d/
$ mv foreman-passenger.conf foreman-passenger.conf.disabled
$ vim /etc/sysconfig/foreman
$ service httpd restart
httpd beenden: [ OK ]
httpd starten: [ OK ]
$ netstat -tulpn | grep 3000
$ cd /usr/share/foreman
$ ./script/rails server -e production
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10:
warning: already initialized constant ENC_NONE
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11:
warning: already initialized constant ENC_EUC
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12:
warning: already initialized constant ENC_SJIS
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13:
warning: already initialized constant ENC_UTF8
=> Booting WEBrick
=> Rails 3.0.17 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-10-09 13:47:36] INFO WEBrick 1.3.1
[2012-10-09 13:47:36] INFO ruby 1.8.7 (2011-06-30) [x86_64-linux]
[2012-10-09 13:47:36] INFO WEBrick::HTTPServer#start: pid=15447 port=3000

Detaching the server also works:

$ ./script/rails server -e production -d
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10:
warning: already initialized constant ENC_NONE
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11:
warning: already initialized constant ENC_EUC
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12:
warning: already initialized constant ENC_SJIS
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13:
warning: already initialized constant ENC_UTF8
=> Booting WEBrick
=> Rails 3.0.17 application starting in production on http://0.0.0.0:3000
$ netstat -tulpn | grep 3000
tcp 0 0 0.0.0.0:3000 0.0.0.0:*
LISTEN 15572/ruby
$

Using the init script or passenger result in the posted error:

$ service foreman stop
foreman beenden: [ OK ]
$ netstat -tulpn | grep 3000
$ service foreman start
foreman starten:
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10:
warning: already initialized constant ENC_NONE
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11:
warning: already initialized constant ENC_EUC
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12:
warning: already initialized constant ENC_SJIS
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13:
warning: already initialized constant ENC_UTF8
/usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:252:in convert&#39;: Error converting value for param &#39;hostcert&#39;: Error converting value for param &#39;certdir&#39;: Error converting value for param &#39;ssldir&#39;: Could not find value for $confdir (Puppet::Settings::InterpolationError) from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in convert&#39; from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:249:in convert&#39; from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in convert&#39; from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:249:in convert&#39; from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:ingsub'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:243:in convert&#39; from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:971:invalue'
from /usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:66:in []&#39; from /usr/share/foreman/lib/foreman/default_settings/loader.rb:46:inload'
from
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in
transaction&#39; from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.17/lib/active_record/transactions.rb:207:intransaction'
from
/usr/share/foreman/lib/foreman/default_settings/loader.rb:31:in load&#39; from /usr/share/foreman/config/initializers/foreman.rb:4 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:inload'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in
load&#39; from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:227:inload_dependency'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:236:in
load&#39; from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:201 from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:200:ineach'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/engine.rb:200
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:25:in
instance_exec&#39; from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:25:inrun'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:50:in
run_initializers&#39; from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:49:ineach'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/initializable.rb:49:in
run_initializers&#39; from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:134:ininitialize!'
from
/usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:77:in
send&#39; from /usr/lib/ruby/gems/1.8/gems/railties-3.0.17/lib/rails/application.rb:77:inmethod_missing'
from /usr/share/foreman/config/environment.rb:5
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:in
require&#39; from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:inrequire'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:225:in
load_dependency&#39; from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:597:innew_constants_in'
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:225:in
load_dependency&#39; from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.17/lib/active_support/dependencies.rb:242:inrequire'
from /usr/share/foreman/config.ru:3
from
/usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb:46:in
instance_eval&#39; from /usr/lib/ruby/gems/1.8/gems/rack-1.2.5/lib/rack/builder.rb:46:ininitialize'
from /usr/share/foreman/config.ru:1:in `new'
from /usr/share/foreman/config.ru:1
[FEHLGESCHLAGEN]
$

Regards Thomas

··· 2012/10/9 Thomas Bendler -- Linux ... enjoy the ride!

That would imply you're running as root instead of foreman. If so, you
may be hitting part of Puppet3's new config-finding functionality - it
won't look at /etc/puppet/puppet.conf any more, when run as non-root.
Try copying or symlinking puppet.conf to ~foreman/.puppet and see if
it will start then.

If so, we need to think about how to explicitly tell Foreman to use
the --confdir argument to force Puppet to look at /etc…

Hi Greg,

> That would imply you're running as root instead of foreman. If so, you
> may be hitting part of Puppet3's new config-finding functionality - it
> won't look at /etc/puppet/puppet.conf any more, when run as non-root.
> Try copying or symlinking puppet.conf to ~foreman/.puppet and see if
> it will start then.
> If so, we need to think about how to explicitly tell Foreman to use
> the --confdir argument to force Puppet to look at /etc…
> […]
>

bingo, that does the trick:

$ grep foreman /etc/passwd
foreman:x:498:498:Foreman:/usr/share/foreman:/sbin/nologin
foreman-proxy:x:495:494:Foreman Proxy deamon
user:/usr/share/foreman-proxy:/sbin/nologin
$ cd /usr/share/foreman
$ mkdir .puppet
$ cd .puppet/
$ ln -s /etc/puppet/puppet.conf .
$ service foreman start
foreman starten:
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10:
warning: already initialized constant ENC_NONE
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11:
warning: already initialized constant ENC_EUC
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12:
warning: already initialized constant ENC_SJIS
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13:
warning: already initialized constant ENC_UTF8
[ OK ]
$

Now Foreman is also running again in combination with passenger.

Regards, Thomas

··· 2012/10/9 Greg Sutcliffe -- Linux ... enjoy the ride!

I ran into another curious manifestation of this problem, this time with
the daily rake tasks Foreman should perform, i.e. db:sessions:clear,
reports:summarize, reports:expire and so on.

These are run from Cron as the Foreman user, but started by root.
Apparently not all of the environment is (re)set, particularly $HOME
seems to remain "/root" instead of "/usr/share/foreman" (or where ever
Foreman's home is).

So these rake tasks would fail, too, with the now familiar message:

rake aborted!
Error converting value for param 'hostcert': Error converting value for
param 'certdir': Error converting value for param 'ssldir': Could not
find value for $confdir

This can be worked around by doing "ln -s /etc/puppet /root/.puppet".

So yeah, a way to programmatically instruct Foreman where to find the
proper Puppet configuration is needed.

Andreas

··· On 2012-10-09 15:28, Greg Sutcliffe wrote: > That would imply you're running as root instead of foreman. If so, you > may be hitting part of Puppet3's new config-finding functionality - it > won't look at /etc/puppet/puppet.conf any more, when run as non-root. > Try copying or symlinking puppet.conf to ~foreman/.puppet and see if > it will start then. > > If so, we need to think about how to explicitly tell Foreman to use > the --confdir argument to force Puppet to look at /etc...

Thanks Thomas - I've added a comment to
https://github.com/theforeman/foreman/pull/166 to make sure we try and
fix that.

Greg

··· On 9 October 2012 15:48, Thomas Bendler wrote: > Hi Greg, > > bingo, that does the trick:

Thanks for the heads up Thomas :slight_smile:

Ugh, more coffee - s/Thomas/Andreas :slight_smile:

··· On 11 October 2012 10:54, Greg Sutcliffe wrote: > Thanks for the heads up Thomas :)