Você não instruiu o Puppet a instalar um pacote.
file { '...': require => Package['...'] }
não resultará na instalação do pacote. Apenas cria um relacionamento entre um recurso file e o nome package .
package { 'bash-completion': ensure => 'installed' }
fará o que você precisa. O require metaparameter funcionará então.