Installieren des Mongo-Treibers für PHP mit Puppet+Vagrant

Installieren des Mongo-Treibers für PHP mit Puppet+Vagrant

Ich spiele mit Vagrant und Puppet herum und stelle eine Entwicklungsmaschine für ein auf Apache/PHP/Mongo basierendes Projekt bereit.

Ich habe alle Komponenten richtig eingerichtet (mithilfe von Modulen von Puppet Forge), aber ich kann beim besten Willen nicht herausfinden, wie ich PHP dazu bringe, mit Mongo zu kommunizieren. phpinfo()zeigt an, dass der Mongo-Treiber nicht installiert ist – was nur Sinn macht, da ich keine Ahnung habe, wie ich ihn installieren soll.

Das Puppet-Modul, das ich zur Installation von PHP verwende, ist das von Lab42, verfügbar unterhttp://github.com/lermit/puppet-php. Die Readme-Datei zeigt, wie manModuleaber nichtTreiber(soweit ich weiß, wird die Mongo-Konnektivität über einen Treiber und nicht über ein Modul hergestellt).

Jede Hilfe, Tipps oder Links zu einer .ppDatei, in der dies tatsächlich getan wurde, sind herzlich willkommen. Vielen Dank!

Aktualisieren:

Habe diesen magischen Spruch herausgefunden:php::pecl::module { "mongo": }

Um grundsätzlich Mongo-Unterstützung über PECL hinzuzufügen. Aber wenn Puppet versucht, es auszuführen, erhalte ich Folgendes:

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 

Ein paar Dinge verstehe ich hierzu nicht:

  1. Wenn ich Puppet aufgefordert habe, das Modul über PECL zu installieren, warum macht es das dann über apt-get?
  2. Warum kann das Paket nicht gefunden werden? Welches Repo muss ich hinzufügen, damit es funktioniert?

Danke noch einmal.

Antwort1

Ich bin sicher, dass die Antwort auf beide Fragen in dem von Ihnen verwendeten Puppet-Modul liegt.

Es ist sicherlich von großem Vorteil, Module zu verwenden, die andere entwickelt haben, da Sie von dem in die Module eingebetteten Wissen profitieren können. Ich würde Ihnen jedoch Folgendes empfehlen:

Finden Sie zunächst heraus, wie Sie die Installation manuell durchführen können (also ohne Puppet).

Zweitens erstellen Sie ein einfaches Puppet-Modul, das das automatisiert

Drittens: Versuchen Sie, die Puppet-Module zu verwenden, die Sie finden, insbesondere auf Puppetforge:https://forge.puppetlabs.com/um zu sehen, ob sie besser funktionieren oder zusätzliche Funktionen bieten.

Es gibt viele gute Ressourcen zu Vagrant und Puppet, aber eine meiner Lieblingsressourcen ist Deploying Railshttp://pragprog.com/book/cbdepra/deploying-rails– offensichtlich auf Ruby on Rails ausgerichtet, baut aber von Grund auf eine Vagrant-/Puppet-/VirtualBox-Testumgebung auf, die Ihrer sehr ähnlich klingt.

Antwort2

Für mich war die Antwort Parameter use_package:

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

Jetzt funktioniert es wie am Schnürchen!

verwandte Informationen