使用 Puppet+Vagrant 為 PHP 安裝 Mongo 驅動程序
我正在玩 Vagrant 和 Puppet,為基於 Apache/PHP/Mongo 的項目配置開發機器。
我已經正確設置了所有組件(使用 Puppet Forge 的模組),但是對於我的生活,我無法弄清楚如何讓 PHP 與 Mongo 對話。
phpinfo()
顯示未安裝 Mongo 驅動程序 - 這才有意義,因為我不知道如何安裝它。我用來安裝 PHP 的 puppet 模組來自 Lab42,可在http://github.com/lermit/puppet-php獲得。自述文件展示瞭如何切換模組而不是驅動程序(afaik,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
所以,有幾件事我不明白:
- 如果我讓 Puppet 通過 PECL 安裝模組,它為什麼要通過 apt-get 來安裝?
- 為什麼找不到那個包?我應該添加什麼倉庫才能使其正常工作?
再次感謝。
我確信這兩個問題的答案都在您使用的 puppet 模組中。
使用其他人開發的模組當然有很大的優勢,因為您可以從他們嵌入模組中的知識中獲益,但我建議您:
首先,弄清楚如何手動進行安裝(即,沒有 puppet)
其次,創建一個簡單的 Puppet 模組來自動化
第三,嘗試使用你找到的 puppet 模組,尤其是。在 puppetforge 上:https ://forge.puppetlabs.com/看看它們是否工作得更好或提供額外的功能。
關於 Vagrant 和 Puppet 有很多很好的資源,但我最喜歡的資源之一是 Deploying Rails http://pragprog.com/book/cbdepra/deploying-rails - 顯然專注於 Ruby on Rails,但它建構了 Vagrant/Puppet /VirtualBox 測試環境,聽起來很像你的,從頭開始。