## Using Templates Templates may be used to apply a set of similar settings to more than one object. For example, rather than manually creating a `ping` service object for each of your hosts you can use templates to avoid having to copy & paste parts of your configuration: template Host "linux-server" { services["ping"] = { check_command = "ping4" }, check = "ping" } object Host "my-server1" inherits "linux-server" { macros["address"] = "10.0.0.1" } object Host "my-server2" inherits "linux-server" { macros["address"] = "10.0.0.2" } In this example both `my-server1` and `my-server2` each get their own `ping` service check. Each host gets its own host `check` defined as the `ping` service too. Objects as well as templates themselves can inherit from an arbitrary number of templates. Attributes inherited from a template can be overridden in the object if necessary. Templates can also be used in service and notification definitions using the `templates` attribute: template Service "weekend-service" { check_interval = 0.5m, check_period = "weekend" } object Host "my-server1" { services["backup"] { check_command = "backup-check", templates = [ "weekend-service" ] } }