Skip to content

matsadler/nagios_config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NagiosConfig

NagiosConfig provides tools to parse, manipulate, generate and output Nagios configuration files using Ruby.

NagiosConfig::Parser

NagiosConfig::Parser will parse both the object and main style Nagios configuration files, and has both a streaming API and the ability to produce a AST/DOM-like structure.

NagiosConfig::Builder

NagiosConfig::Builder is a simple DSL for generating Nagios config files using Ruby

NagiosConfig::Formater

NagiosConfig::Formater will take the data structures produced by the parser and builder and output them in the format of a Nagios config file.

Making changes to a config file

Say for example you decided you want all your host names uppercase

require 'rubygems'
require 'nagios_config'

host_config = nil
File.open("hosts.cfg") do |f|
  host_config = NagiosConfig::Parser.new.parse(f)
end

host_config.defines do |node|
  if node.type.value == "host"
    variable = node.variables.find {|node| node.name.value == "hostname"}
    variable.val.value.upcase! if variable
  end
end

File.open("hosts.cfg", "w") do |f|
  NagiosConfig::Formatter.new(f).format(host_config)
end

About

Read and write Nagios config files from Ruby

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages