Sadly, there is a rather substantial issue with both the ordering of containers and the distribution of refresh events: neither will transcend the include statements of further classes. Consider the following example:
class apache {
include apache::service
include apache::package
include apache::config
}
file { '/etc/apache2/conf.d/passwords.conf':
source => '...',
require => Class['apache'],
}
I have often mentioned how the comprehensive apache class models everything about the Apache server subsystem, and in the previous section, I went on to explain that directing a require parameter at such a class will make sure that Puppet only touches the dependent resource if the subsystem has been successfully configured.
This is mostly true, but, due to the limitation concerning class boundaries, it doesn't achieve the desired...