Atualmente estou tentando atualizar minha máquina Vagrant com módulos Puppet para PHP7 e, claro, com módulos atualizados. No entanto, desde a atualização do módulo puppetlabs/Apache para a versão 3.0.0, ele está falhando ao tentar instalar o libapache2-mod-php7.0
.
Já consegui rastrear a causa. Por alguma razão, o módulo puppetlabs/Apache está configurando dois MPMs quando a ::apache::mod::php
classe está sendo chamada. Ele define tanto o evento quanto o MPM pré-fork. A razão pela qual o prefork está sendo definido é porque o módulo Puppet exige que você carregue o módulo prefork ou itk ao usar PHP. Quando defino prefork ou itk, ele também carrega o evento MPM por algum motivo. A partir de agora, é assim que chamo o módulo Apache:
class { '::apache':
default_vhost => false,
mpm_module => 'false',
server_signature => 'Off',
}
class { '::apache::mod::ssl': }
class { '::apache::mod::prefork': }
class { '::apache::mod::php': }
class { '::apache::mod::rewrite': }
class { '::apache::mod::headers': }
Quando defino mpm_module para algo diferente de itk ou prefork, ele gera o erro itk ou prefork é obrigatório. Quando eu removo ::apache::mod::prefork
e defino a configuração mpm_module como prefork, o mesmo acontece com a configuração atual.
Quando eu faço login na máquina Vagrant após a falha na instalação e removo a linha LoadModule do /etc/apache2/modules-enabled/event.load
arquivo, tudo funciona conforme o esperado. Não tenho ideia do motivo pelo qual está carregando o evento MPM, pois o carregamento duplo do MPM está causando o conflito. O Apache não tem ideia de qual MPM carregar, portanto falha na instalação do libapache2-mod-php7.0.
Também não há saída do Puppet que mostre que os arquivos event.conf/event.load foram criados, apenas os pré-fork.
Notice: /Stage[main]/Apache::Mod::Prefork/Apache::Mpm[prefork]/File[/etc/apache2/mods-available/prefork.load]/ensure: defined content as '{md5}01b33d643f63126888cf702689f1f66d'
Notice: /Stage[main]/Apache::Mod::Prefork/Apache::Mpm[prefork]/File[/etc/apache2/mods-enabled/prefork.conf]/ensure: created
Notice: /Stage[main]/Apache::Mod::Prefork/Apache::Mpm[prefork]/File[/etc/apache2/mods-enabled/prefork.load]/ensure: created
Estou executando no Debian Stretch x64, com a versão estável mais recente do Vagrant, VirtualBox, Puppet e Apache/2.4.25.
Responder1
Para os interessados, abri um relatório de bug no Jira do Puppetlabs e, como esperado, acabou sendo um bug real. Deve haver correções em uma próxima versão quando a solicitação pull for concluída:https://tickets.puppetlabs.com/browse/MODULES-6677
Acho que isso resolve esse problema.