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