Issue #1886 has been updated by Daniel Pittman.
No, not at this point in time. We need to make a couple of decisions: 1. Are we shipping "interfaces", so that it would make sense to have 'puppet node clean' as an action? 2. Do we want to ship an interim solution in 2.6, where having a separate node cleaner might make sense? I think the answers are yes, and no, meaning that "this" is "use the interfaces stuff to deliver this functionality. ---------------------------------------- Feature #1886: Add node cleanup capability https://projects.puppetlabs.com/issues/1886 Author: micah - Status: Needs Decision Priority: Low Assignee: Daniel Pittman Category: newfeature Target version: Statler Affected Puppet version: 0.25.0 Keywords: communitypatch Branch: https://github.com/duritong/puppet/tree/ticket/2.6.x/1886 There really isn't a good mechanism to clean up when a node no longer exits. You can remove it from your node definition, but there is a lot of junk hanging around that should be cleaned up too. It would be really cool if the ability to wipe a node was built into puppetmaster so you could just simply do something like: <pre> puppetmaster --clean node puppetmaster --clean node.domain.name </pre> and this would clean up everything that puppet can find on that node. The things that I can think of that need to get cleaned up are: 1. Signed certificates ($vardir/ssl/ca/signed/node.domain.pem) 2. Cached facts ($vardir/yaml/facts/node.domain.yaml) 3. Cached node stuff ($vardir/yaml/node/node.domain.yaml) 4. Reports ($vardir/reports/node.domain) 5. Stored configs. I found a script on the wiki that takes care of this: <pre> #!/usr/bin/env ruby ## Usage: sudo ./kill_node_in_storeconfigs_db.rb <hostname as stored in hosts table> require 'puppet/rails' Puppet[:config] = "/etc/puppet/puppet.conf" Puppet.parse_config pm_conf = Puppet.settings.instance_variable_get(:@values)[:puppetmasterd] adapter = pm_conf[:dbadapter] args = {:adapter => adapter, :log_level => pm_conf[:rails_loglevel]} case adapter when "sqlite3": args[:dbfile] = pm_conf[:dblocation] when "mysql", "postgresql": args[:host] = pm_conf[:dbserver] unless pm_conf[:dbserver].empty? args[:username] = pm_conf[:dbuser] unless pm_conf[:dbuser].empty? args[:password] = pm_conf[:dbpassword] unless pm_conf[:dbpassword].empty? args[:database] = pm_conf[:dbname] else raise ArgumentError, "Invalid db adapter %s" % adapter end ActiveRecord::Base.establish_connection(args) if @host = Puppet::Rails::Host.find_by_name(ARGV[0].strip) print "Killing #{ARGV[0]}..." $stdout.flush @host.destroy puts "done." else puts "Can't find host #{ARGV[0]}." end </end> Sure, I can do all this manually, but this is a feature request because its a little annoying and you forget all the pieces. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
