Introdução
No momento, existem aproximadamente 100 agentes de marionetes que se conectam ao mestre de marionetes. Às vezes, leva algum tempo até que as mudanças implementadas no Puppetmaster sejam escolhidas pelos agentes. Alguma informação foi encontrada que Passenger combinado com um servidor web, por ex. Apache2 ou Nginx podem acelerar este processo. Acima de tudo, de acordo com esta documentação , é altamente recomendável usar essa funcionalidade em ambientes de produção.
Objetivo
O objetivo é instalar o Nginx e implementar suporte ao Phusion Passenger no CentOS7 usando passenger-install-nginx-module
para acelerar o reconhecimento de mudanças implementadas no Puppetmaster por agentes de marionetes.
Tentativas
Tentativa 1
sudo /usr/local/share/gems/gems/passenger-4.0.56/bin/passenger-install-nginx-module --auto --auto-download
foi executado e as etapas de instalação foram seguidas.
Tentativa 2
Como o serviço Nginx não foi instalado durante a tentativa 1, ele foi instalado usando yum -y install nginx
.
Tentativa 3
Pesquisando: "[emerg] unknown directive passenger_enabled"
indicou que o nginx foi compilado sem suporte ao Phusion Passenger . Nesse caso, isso deve ser falso, pois passenger-install-nginx-module
foi executado e a saída da instalação durante a tentativa 1 indicou que o Nginx deveria ter sido instalado.
Tentativa 4
/etc/nginx/nginx.conf
passenger_root /usr/local/share/gems/gems/passenger-4.0.56;
passenger_ruby /usr/bin/ruby;
/etc/nginx/conf.d/puppet.conf
passenger_enabled on;
Tentativa 5
Para testar se esse problema ocorre usando outro servidor da Web, bem como sudo /usr/local/share/gems/gems/passenger-4.0.56/bin/passenger-install-apache2-module
foi executado.
Resultado esperado
A execução de passenger-install-nginx-module
e a conclusão das etapas de instalação instalam o Nginx. O serviço Nginx pode ser iniciado e o suporte ao Phusion-Passenger está incluído. Verificar se a porta 8140 está no estado LISTEN deve resultar em true, pois o Nginx deve iniciar o Puppetmaster.
Resultado atual
A execução de passenger-install-nginx-module
e a conclusão das etapas de instalação não instalam o Nginx, enquanto a saída indica o contrário.
Nginx with Passenger support was successfully installed.
Please edit your Nginx configuration file (probably /opt/nginx/conf/nginx.conf),
and set the passenger_root and passenger_ruby configuration options in the
'http' block, like this:
http {
...
passenger_root /usr/local/share/gems/gems/passenger-4.0.56;
passenger_ruby /usr/bin/ruby;
...
}
A instalação do Nginx usando o yum também não funciona. O problema persiste mesmo quando passenger-install-nginx-module
é executado novamente.
[vagrant@vm-one ~]$ sudo systemctl status nginx.service -l
nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
Active: failed (Result: exit-code) since Thu 2015-01-01 01:55:56 UTC;
2min 19s ago
Process: 7963 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/
SUCCESS)
Process: 7935 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 10814 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)
Main PID: 7937 (code=exited, status=0/SUCCESS)
Jan 01 01:55:56 vm-one.local systemd[1]: Starting The nginx HTTP and reverse
proxy server...
Jan 01 01:55:56 vm-one.local nginx[10814]: nginx: [emerg] unknown directive
"passenger_enabled" in /etc/nginx/conf.d/puppet.conf:5
Jan 01 01:55:56 vm-one.local nginx[10814]: nginx: configuration file /etc/nginx
/nginx.conf test failed
Jan 01 01:55:56 vm-one.local systemd[1]: nginx.service: control process exited,
code=exited status=1
Jan 01 01:55:56 vm-one.local systemd[1]: Failed to start The nginx HTTP and
reverse proxy server.
Jan 01 01:55:56 vm-one.local systemd[1]: Unit nginx.service entered failed state.
Tentando instalar outro servidor da web com os resultados do suporte ao passageiro em:
* Checking for Apache 2...
Found: no
* Checking for Apache 2 development headers...
Found: no
Isso indica que passenger-install-apache2-module
, em contraste com passenger-install-nginx-module
, parece verificar se um servidor da Web foi instalado ou não.