Sha256: 9506b8744583f071519bf10fa9bff351b2e35caa82c647a9912b2c2e57db11bd

Contents?: true

Size: 1.13 KB

Versions: 3

Compression:

Stored size: 1.13 KB

Contents

namespace :monit do

  desc 'Install Monit'
  task :install do
    on roles(:app) do
      sudo "apt-get -y install monit"
    end
  end

  desc 'Setup all Monit configuration'
  task :setup do
    on roles(:app) do
      monit_config 'monitrc', '/etc/monit/monitrc'
      invoke 'monit:nginx'
      invoke 'monit:postgresql'
      invoke 'monit:unicorn'
      invoke 'monit:syntax'
      invoke 'monit:reload'
    end
  end

  task :nginx do
    on roles(:app) do
      monit_config "nginx"
    end
  end
  task :postgresql do
    on roles(:app) do
      monit_config "postgresql"
    end
  end
  task :unicorn do
    on roles(:app) do
      monit_config "unicorn"
    end
  end

  %w[start stop restart syntax reload].each do |command|
    desc "Run Monit #{command} script"
    task command do
      on roles(:app) do
        sudo "service monit #{command}"
      end
    end
  end

end

def monit_config(name, destination = nil)
  destination ||= "/etc/monit/conf.d/#{name}.conf"
  template "monit/#{name}.erb", "/tmp/monit_#{name}"
  sudo "mv /tmp/monit_#{name} #{destination}"
  sudo "chown root #{destination}"
  sudo "chmod 600 #{destination}"
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
recipes_matic-1.3.0 lib/generators/recipes_matic/templates/lib/capistrano/tasks/monit.rake
recipes_matic-1.2.1 lib/generators/recipes_matic/templates/lib/capistrano/tasks/monit.rake
recipes_matic-1.2.0 lib/generators/recipes_matic/templates/lib/capistrano/tasks/monit.rake