Sha256: 100886a7664fa6855ebd446d28c00731bfd0da211e35d73820116f81a05b5946

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require 'capistrano'
require_relative '../zabbix_maintenance'

Capistrano::Configuration.instance.load do
  def set_default(pname, *args, &bl)
    set(pname, *args, &bl) unless exists? pname
  end

  # Defaults
  set_default(:zabbix_url)  { 'http://192.168.56.2/zabbix/' }
  set_default(:zabbix_user) { 'Admin' }
  set_default(:zabbix_password) { 'zabbix' }
  set_default(:zabbix_period) { 60 * 60 * 10 } # 10 hours
  set_default(:zabbix_groupid) { 2 }
  set_default(:zabbix_auto_trigger) { false }

  namespace :zabbix do
    desc 'Create maintenance in Zabbix'
    task :create do
      zm_api.create_or_replace [zabbix_groupid], period: zabbix_period
    end

    desc 'Delete maintenance in Zabbix'
    task :delete do
      zm_api.delete(id: zm_api.maint_id)
    end
  end

  if zabbix_auto_trigger
    after 'deploy:setup',           'zabbix:create'
    after 'deploy:restart',         'zabbix:delete'
  end

  def zm_api
    zbx = ZabbixMaintenance.new("#{zabbix_url}/api_jsonrpc.php",
                                zabbix_user,
                                zabbix_password)
    set(:zbx_handle, zbx)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
capistrano2-zabbix-0.1.3 lib/capistrano/tasks.rb
capistrano2-zabbix-0.1.2 lib/capistrano/tasks.rb