Certo, require
não funcionará para isso, o comportamento de construção de dependência se aplica à classe da qual ele é chamado (que não funciona quando é de um nó). Uma abordagem seria usar o encadeamento de recursos:
node default {
include vagrant::bootstrap, base, puppet::agent, php::php54, apache2
Class["vagrant::bootstrap"] -> Class["apache2"]
}
Ou, como alternativa, basta tornar o bootstrap um requisito para a instalação do pacote:
class apache2 {
# ..like this..
require vagrant::bootstrap
include apache2::install, apache2::service
}
class apache2::install {
package { [ "apache2", "apache2-doc", "apache2-mpm-worker", "apache2-utils", "libapache2-mod-fcgid" ]:
ensure => present,
# ..or like this.
require => Class["vagrant::bootstrap"],
}
}