class PoiseMonit::MonitProviders::System
A `system` provider for `monit` to install from system packages. Uses EPEL for RHEL-family platforms.
@see PoiseMonit::Resources::PoiseMonit::Resource @provides monit
Public Class Methods
default_inversion_options(node, resource)
click to toggle source
@api private
# File lib/poise_monit/monit_providers/system.rb, line 42 def self.default_inversion_options(node, resource) {package: 'monit', no_epel: false} end
provides_auto?(node, _resource)
click to toggle source
Enable by default on Debian-oids. Doesn't really matter given that binaries outranks this provider.
@api private
# File lib/poise_monit/monit_providers/system.rb, line 37 def self.provides_auto?(node, _resource) node.platform_family?('debian', 'rhel') end
Public Instance Methods
monit_binary()
click to toggle source
Output value for the Monit binary we are installing.
@return [String]
# File lib/poise_monit/monit_providers/system.rb, line 49 def monit_binary # Until I run into a counter-example, probably always true. '/usr/bin/monit' end
Private Instance Methods
install_monit()
click to toggle source
# File lib/poise_monit/monit_providers/system.rb, line 56 def install_monit if node.platform_family?('rhel') && !options['no_epel'] if run_context.unreachable_cookbook?(:'yum-epel') raise Chef::Exceptions::RecipeNotFound.new('Could not find recipe yum-epel. Please include it either on your run list or via a metadata.rb depends to install on RHEL or CentOS') end include_recipe 'yum-epel' end # We're taking care of the init system. init_file = file '/etc/init.d/monit' do action :nothing end package options['package'] do notifies :delete, init_file, :immediately if node.platform_family?('debian') options '-o Dpkg::Options::=--path-exclude=/etc/*' end version new_resource.version end end
uninstall_monit()
click to toggle source
# File lib/poise_monit/monit_providers/system.rb, line 78 def uninstall_monit package options['package'] do action(platform_family?('debian') ? :purge : :remove) end end