简体   繁体   中英

Chef server: error “ArgumentError” when adding /etc/chef-server/chef-server.rb

i'm trying to learn about chef (i use to wok with CFengine). So i wanted to install a chef-server on my ubuntu 12.10 box.

I have follow this documentation: http://docs.opscode.com/install_server.html

All works fine, except i already have a web server listening on port 80. So i wanted nginx (from chef server) to listen on 8080. To do that, i have added "/etc/chef-server/chef-server.rb" with:

default['chef_server']['api_version'] = "11.0.2"
default['chef_server']['flavor'] = "osc" # Open Source Chef

default['chef_server']['notification_email'] = "XXXXXX@SPAM.XXXXX"
default['chef_server']['bootstrap']['enable'] = true

####
# The Chef User that services run as
####
# The username for the chef services user
default['chef_server']['user']['username'] = "chef_server"
# The shell for the chef services user
default['chef_server']['user']['shell'] = "/bin/sh"
# The home directory for the chef services user
default['chef_server']['user']['home'] = "/opt/chef-server/embedded"


####
# Nginx
####
default['chef_server']['nginx']['enable'] = true
default['chef_server']['nginx']['ha'] = false
default['chef_server']['nginx']['dir'] = "/var/opt/chef-server/nginx"
default['chef_server']['nginx']['log_directory'] = "/var/log/chef-server/nginx"
default['chef_server']['nginx']['ssl_port'] = 443
default['chef_server']['nginx']['enable_non_ssl'] = false
default['chef_server']['nginx']['non_ssl_port'] = 8080
default['chef_server']['nginx']['server_name'] = node['fqdn']
default['chef_server']['nginx']['url'] = "https://#{node['fqdn']}"

And when i try: chef-server-ctl reconfigure

I got:

root@goldorak:/etc/chef-server# chef-server-ctl reconfigure
Starting Chef Client, version 11.6.0
Compiling Cookbooks...
Recipe: chef-server::default
  * directory[/etc/chef-server] action create (up to date)

================================================================================
Recipe Compile Error in /opt/chef-server/embedded/cookbooks/chef-server/recipes/default.rb
================================================================================


ArgumentError
-------------
wrong number of arguments (0 for 1)


Cookbook Trace:
---------------
  /opt/chef-server/embedded/cookbooks/chef-server/recipes/default.rb:34:in `from_file'


Relevant File Content:
----------------------
/opt/chef-server/embedded/cookbooks/chef-server/recipes/default.rb:

 27:  end.run_action(:create)
 28:  
 29:  if File.exists?("/etc/chef-server/chef-server.json")
 30:    Chef::Log.warn("Please move to /etc/chef-server/chef-server.rb for configuration - /etc/chef-server/chef-server.json is deprecated.")
 31:  else
 32:    ChefServer[:node] = node
 33:    if File.exists?("/etc/chef-server/chef-server.rb")
 34>>     ChefServer.from_file("/etc/chef-server/chef-server.rb")
 35:    end
 36:    node.consume_attributes(ChefServer.generate_config(node['fqdn']))
 37:  end
 38:  
 39:  if File.exists?("/var/opt/chef-server/bootstrapped")
 40:    node.set['chef_server']['bootstrap']['enable'] = false
 41:  end
 42:  
 43:  # Create the Chef User



[2014-01-30T17:09:54+01:00] ERROR: Running exception handlers
[2014-01-30T17:09:54+01:00] ERROR: Exception handlers complete
[2014-01-30T17:09:54+01:00] FATAL: Stacktrace dumped to /opt/chef-server/embedded/cookbooks/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated
[2014-01-30T17:09:54+01:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Ok answer myself, bad syntax in chef-server.rb. Don't need "default['chef_server']" prefix. For example:

nginx['non_ssl_port'] = 8080

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM