Reading this far, you might have gotten the impression that this chapter is a rather odd mix of topics. While types and providers do belong closely together, the whole introduction to Facter might seem out of place in their context. This is deceptive however: facts do play a vital part in the type/provider structure. They are essential for Puppet to make good choices among providers.
Let's look at an example from the Extending Facter with custom facts
section once more. It was about fstab
entries and the difference of Solaris, where those are found in /etc/vfstab
instead of /etc/fstab
. That section suggested a manifest that adapts according to a fact value. As you can imagine now, Puppet has a resource type to manage fstab
content: the mount
type. However, for the small deviation of a different file path, there is no dedicated mount
provider for Solaris. There is actually just one provider for all platforms, but on Solaris, it behaves differently. It does this by...