Puppet+Vagrant を使用して PHP 用の Mongo ドライバーをインストールする

Puppet+Vagrant を使用して PHP 用の Mongo ドライバーをインストールする

私は Vagrant と Puppet を試しながら、Apache/PHP/Mongo ベースのプロジェクト用の開発マシンをプロビジョニングしています。

すべてのコンポーネントを正しく設定しましたが (Puppet Forge のモジュールを使用)、PHP を Mongo と通信させる方法がどうしてもわかりません。Mongophpinfo()ドライバーがインストールされていないと表示されますが、インストール方法がわからないため、当然のことです。

PHPのインストールに使用したpuppetモジュールはLab42のもので、以下から入手可能です。http://github.com/lermit/puppet-phpREADMEでは切​​り替え方法を説明しますモジュールだがしかし運転手(私の知る限り、Mongo 接続はモジュールではなくドライバーを介して確立されます)。

実際にこれが行われたファイルへのヘルプ、ヒント、またはリンクがあれば.pp大歓迎です。ありがとうございます!

アップデート:

この魔法のラインを見つけました:php::pecl::module { "mongo": }

基本的には PECL 経由で Mongo サポートを追加します。ただし、Puppet がこれを実行しようとすると、次のエラーが発生します。

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 

それで、これについて私が理解していないことがいくつかあります:

  1. Puppet に PECL 経由でモジュールをインストールするように指示したのに、なぜ apt-get 経由でインストールするのでしょうか?
  2. なぜそのパッケージが見つからないのでしょうか? 動作させるにはどのリポジトリを追加すればよいのでしょうか?

再度、感謝します。

答え1

両方の質問に対する答えは、使用している Puppet モジュールにあるはずです。

他の人が開発したモジュールを使用すると、モジュールに埋め込まれた知識を活用できるため、確かに大きな利点がありますが、次のことをお勧めします。

まず、手動で(つまり、Puppetなしで)インストールする方法を理解します。

次に、それを自動化するシンプルなPuppetモジュールを作成します。

3 番目に、特に puppetforge で見つけた puppet モジュールを使用してみます。https://forge.puppetlabs.com/より適切に機能するか、追加機能が提供されるかを確認します。

VagrantとPuppetに関する優れたリソースはたくさんありますが、私のお気に入りはDeploying Railsです。http://pragprog.com/book/cbdepra/deploying-rails- 明らかに Ruby on Rails に重点を置いていますが、Vagrant/Puppet/VirtualBox のテスト環境をゼロから構築します。これは、皆さんの環境とよく似ています。

答え2

私にとっての答えはパラメータでしたuse_package:

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

今では完璧に動作します!

関連情報