lib/deprec/recipes/collectd.rb in deprec-2.0.15 vs lib/deprec/recipes/collectd.rb in deprec-2.1.0

- old
+ new

@@ -1,112 +1,93 @@ # Copyright 2006-2009 by Mike Bailey. All rights reserved. Capistrano::Configuration.instance(:must_exist).load do namespace :deprec do namespace :collectd do - # latest rrdtool - # apt-get install intltool - # wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz - # tar zxf rrdtool.tar.gz - # cd rrdtool - # ./configure --prefix=/usr/local - # make - # sudo make install + set(:collectd_server) { Capistrano::CLI.ui.ask 'Enter Collectd server hostname' } + + # XXX master only + # Update libdir for libcollectdclient.so.0 + # collectd-nagios is not finding it in /usr/local/lib # - # wget http://oss.oetiker.ch/rrdtool/pub/contrib/ruby-rrd-1.1.tar.gz - # tar zxf ruby-rrd-1.1.tar.gz - # cd ruby-rrd-1.1 - # ruby extconf.rb - # make - # make install - - # Ruby bindings - # RRD.so - - + # Copy collection-php to /var/www/collectd SRC_PACKAGES[:collectd] = { - :url => "http://collectd.org/files/collectd-4.7.1.tar.gz", - :md5sum => "9ec7f111e74dc55ad2aa9fcc11b8221c collectd-4.7.1.tar.gz", - :configure => "./configure --prefix=/usr/local" + :url => "http://collectd.org/files/collectd-4.7.2.tar.gz", + :md5sum => "893c7a861b7a4a591188d9468622d89d collectd-4.7.2.tar.gz", + :configure => "./configure --prefix=/usr/local;" } desc "Install collectd" task :install do install_deps deprec2.download_src(SRC_PACKAGES[:collectd], src_dir) deprec2.install_from_src(SRC_PACKAGES[:collectd], src_dir) end - # install dependencies for nginx + # install dependencies for sysklogd task :install_deps do apt.install( {:base => %w(liboping-dev libperl-dev libdbi0-dev libesmtp-dev libganglia1-dev libmemcache-dev libnet1-dev libnotify-dev libopenipmi-dev liboping-dev libpcap-dev libperl-dev librrd2-dev libsensors-dev libstatgrab-dev nut-dev libvirt-dev)}, :stable ) apt.install( {:base => %w(rrdtool librrd2-dev librrds-perl libconfig-general-perl libhtml-parser-perl libregexp-common-perl)}, :stable ) end - # "Start git server in local directory" - task :serve do - cmd = "git-daemon --verbose --port=#{git_port} --base-path=#{Dir.pwd} --base-path-relaxed" - puts cmd - `#{cmd}` + SYSTEM_CONFIG_FILES[:collectd] = [ + + {:template => "collectd.conf.erb", + :path => '/usr/local/etc/collectd.conf', + :mode => 0640, + :owner => 'root:root'}, + + ] + + desc "Generate Collectd configs" + task :config_gen do + SYSTEM_CONFIG_FILES[:collectd].each do |file| + deprec2.render_template(:collectd, file) + end end - - desc "Create git repos for current dir" - task :init do - `git init` - create_gitignore - create_files_in_empty_dirs - `git add . && git commit -m 'initial import'` + + desc "Push Chef config files (system & project level) to server" + task :config, :roles => :all_hosts, :except => {:collectd_master => true} do + deprec2.push_configs(:collectd, SYSTEM_CONFIG_FILES[:collectd]) + restart end - - task :create_gitignore do - system("echo '.DS_Store' >> .gitignore") # files sometimes created by OSX - system("echo 'log/*' >> .gitignore") if File.directory?('log') - system("echo 'tmp/**/*' >> .gitignore") if File.directory?('tmp') + + desc "Start collectd" + task :start, :roles => :all_hosts, :except => { :collectd_master => true } do + run "#{sudo} collectd" end - task :create_files_in_empty_dirs do - %w(log tmp).each { |dir| - system("touch #{dir}/.gitignore") if File.directory?(dir) - } + desc "Stop collectd" + task :stop, :roles => :all_hosts, :except => { :collectd_master => true } do + run "#{sudo} killall collectd; exit 0;" end - desc "Create remote origin for current dir" - task :create_remote_origin do - File.directory?('.git') || init - - # Push to remote git repo - hostname = capture "echo $CAPISTRANO:HOST$" - system "git remote add origin git@#{hostname.chomp}:#{application}" - system "git push origin master:refs/heads/master" - - puts - puts "New remote Git repo: #{git_user}@#{hostname.chomp}:#{application}" - puts - - # File.open('.git/config', 'w') do |c| - # c.write 'Add the following to .git/config' - # c.write '[branch "master"]' - # c.write ' remote = origin' - # c.write ' merge = refs/heads/master' - # end - + desc "Restart collectd" + task :restart, :roles => :all_hosts, :except => { :collectd_master => true } do + stop + start end - # Create root dir for git repositories - task :create_git_root do - deprec2.mkdir(git_root, :mode => 02775, :owner => git_user, :group => git_group, :via => :sudo) - sudo "chmod -R g+w #{git_root}" - end - - # regenerate git authorized keys file from users file in same dir - task :regenerate_authorized_keys do - sudo "echo '' > #{git_keys_file}" - sudo "for file in `ls #{git_keys_file}-*`; do cat $file >> #{git_keys_file}; echo \"\n\" >> #{git_keys_file} ; done" - sudo "chown #{git_user}.#{git_group} #{git_keys_file}" - sudo "chmod 0600 #{git_keys_file}" - end - - end + end end + +# latest rrdtool +# apt-get install intltool +# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz +# tar zxf rrdtool.tar.gz +# cd rrdtool +# ./configure --prefix=/usr/local +# make +# sudo make install +# +# wget http://oss.oetiker.ch/rrdtool/pub/contrib/ruby-rrd-1.1.tar.gz +# tar zxf ruby-rrd-1.1.tar.gz +# cd ruby-rrd-1.1 +# ruby extconf.rb +# make +# make install + +# Ruby bindings +# RRD.so