In this recipe, you'll learn one possible method of building Nagios configuration dynamically to avoid having to compose or copy and paste a lot of directives for new hosts or services. In other words, this recipe is about generating a configuration using templates.
To demonstrate how this is useful, we'll use the m4 macro language utility, which should be available on virtually any UNIX-like system, including GNU/Linux and BSD. As a tool designed for macro expansion, m4 is particularly well suited to creating verbose plain text configuration files, such as the ones used by Nagios Core.
The principles here should apply just as easily to your favored programming or templating language, perhaps Python, Perl, or shell scripts.