Plain config file shipping¶
Icinga 2 offers a very powerful configuration format. By definition, it isn’t a configuration format at all, it’s a DSL, a Domain Specific Language. There is no chance to implement all of it’s feature in a config tool like Icinga Director, that would make as much sense as trying to create a GUI for Ruby or Perl.
So, sometimes one might want to ship additional hand-crafted Icinga 2 config files not generated by the Director. Sadly, that way you loose a lot of it’s features like tracking changes, keeping deployment history and more. That’s what this part of fileshipper has been designed for. It allows you to tell Director to deploy additional config files without even trying to understand them.
To enable this, please create a directories.ini
in this modules config dir,
usually /etc/icingaweb2/modules/fileshipper
:
[custom-rules]
source = /usr/local/src/custom-rules.git
target = zones.d/director-global/custom-rules
[test]
source = /tmp/replication-test
target = zones.d/director-global/having-fun
extensions = .conf .md
In this example all local files from source
will be deployed to the given target
directory. Please take care, use of this module requires advanced understanding of
Icinga2 configuration. Per default only .conf
files are synced, you can override
this with a custom space-separated list for the extensions
parameter.
In case you want to trigger specific actions like re-rendering or deploying the config on changes you might want to have a look at our sample GIT hook in contrib/git-hooks/post-merge.
When working with Puppet or similar, please consider notifying an exec
resource
with refreshonly
set to true
instead.