Instalación del controlador Mongo para PHP usando Puppet+Vagrant

Instalación del controlador Mongo para PHP usando Puppet+Vagrant

Estoy jugando con Vagrant y Puppet, aprovisionando una máquina de desarrollo para un proyecto basado en Apache/PHP/Mongo.

Tengo todos los componentes configurados correctamente (usando módulos de Puppet Forge), pero por mi vida, no puedo entender cómo hacer que PHP se comunique con Mongo. phpinfo()muestra que el controlador Mongo no está instalado, lo cual tiene sentido, ya que no tengo idea de cómo instalarlo.

El módulo de marionetas que utilizo para instalar PHP es el de Lab42, disponible enhttp://github.com/lermit/puppet-php. El archivo Léame muestra cómo alternarmódulospero noconductores(Afaik, la conectividad de Mongo se establece mediante un controlador en lugar de un módulo).

Cualquier ayuda, consejo o enlace a un .pparchivo donde realmente se haya hecho esto será bienvenido. ¡Gracias!

Actualizar:

Descubrí esta línea mágica:php::pecl::module { "mongo": }

Básicamente, agregar soporte para Mongo a través de PECL. Pero cuando Puppet intenta ejecutarlo, aparece esto:

err: /Stage[main]/Project/Php::Pecl::Module[mongo]/Package[php-mongo]/ensure: 
change from purged to present failed: 
Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install php5-mongo' 
returned 100: Reading package lists...
Building dependency tree...         
Reading state information...        
E: Couldn't find package php5-mongo 

Entonces, un par de cosas que no entiendo sobre esto:

  1. Si le pedí a Puppet que instalara el módulo mediante PECL, ¿por qué lo hace mediante apt-get?
  2. ¿Por qué no puede encontrar ese paquete? ¿Qué repositorio debo agregar para que funcione?

Gracias de nuevo.

Respuesta1

Estoy seguro de que la respuesta a ambas preguntas está en el módulo de marionetas que estás utilizando.

Ciertamente hay una gran ventaja en usar módulos que otros han desarrollado, porque puedes obtener el conocimiento que ellos tienen incorporado en los módulos, pero te recomendaría que:

Primero, descubra cómo realizar la instalación manualmente (es decir, sin marionetas).

En segundo lugar, cree un módulo Puppet simple que automatice eso.

En tercer lugar, intente utilizar los módulos de marionetas que encuentre, especialmente. en Puppetforge:https://forge.puppetlabs.com/para ver si funcionan mejor u ofrecen funciones adicionales.

Hay muchos buenos recursos sobre Vagrant y Puppet, pero uno de mis favoritos es Deploying Rails.http://pragprog.com/book/cbdepra/deploying-rails- obviamente se centró en Ruby on Rails, pero crea un entorno de prueba Vagrant/Puppet/VirtualBox que se parece mucho al suyo, desde cero.

Respuesta2

Para mí la respuesta fue el parámetro use_package:

php::pecl::module { "mongo": use_package => 'no', }

¡Ahora funciona como un encanto!

información relacionada