[chef] Re: Problem with roles not updating


Chronological Thread 
  • From: Graeme Mathieson < >
  • To:
  • Subject: [chef] Re: Problem with roles not updating
  • Date: Tue, 4 Aug 2009 11:22:39 +0100

Hi,

Yeah, I ran into the same problem. The trouble is that `rake install`, while moving the new roles into place, doesn't update the couchdb database, which is what the chef server actually uses as its backing store.  I've got a pair of rake tasks that are now run on `rake install` that update the metadata *and* sync with the running Chef server:

namespace :roles do
  desc "Build roles from roles/role_name.json from role_name.rb"
  task :generate do
    chef_files.roles.each do |role_file|
      short_name = File.basename(role_file, '.rb')
      puts "Generating role JSON for #{short_name}"
      role = Chef::Role.new
      role.name(short_name)
      role.from_file(role_file)
      File.open(File.join(TOPDIR, 'roles', "#{short_name}.json"), "w") do |f|
        f.write(JSON.pretty_generate(role))
      end
    end
  end

  desc "Push the current set of roles in the filesystem into CouchDB"
  task :push => [ :generate ] do
    Chef::Role.sync_from_disk_to_couchdb
  end
end

I blatantly stole these from somebody else, so credit it due elsewhere (but I can't remember where I found it, somewhere in Jira, I think?).  The roles:generate task is just the same as the current roles task (which I've refactored slightly in our repo). The extra task is the roles:push which syncs them to couchdb.

Works a treat for me.

Cheers,

Graeme.

On 4 Aug 2009, at 11:08, Jose Luis Gordo Romero wrote:

Hi!

I have a problem with chef 0.7.4, I create/modify roles and run rake install on chef server (seems updated correctly):

ubuntu.json
         362 100%  353.52kB/s    0:00:00 (xfer#2, to-check=5/8)
ubuntu.rb
         279 100%  272.46kB/s    0:00:00 (xfer#3, to-check=4/8)
webserverbase.json
         420 100%  410.16kB/s    0:00:00 (xfer#4, to-check=3/8)
webserverbase.rb
         326 100%  318.36kB/s    0:00:00 (xfer#5, to-check=2/8)
webserverphp.json
         272 100%  265.62kB/s    0:00:00 (xfer#6, to-check=1/8)
webserverphp.rb
         258 100%  251.95kB/s    0:00:00 (xfer#7, to-check=0/8)


But in the webui (or directly on the couchdb database) is not appearing and can't be used by chef-client. Sometimes restarting the couchdb or apache (I can't reproduce the behaviour), it's appears.

Have you seen the same?

Many thanks in advance.
Jose Luis Gordo




Archive powered by MHonArc 2.6.16.

§