Установка драйвера Mongo для PHP с помощью Puppet+Vagrant

Установка драйвера Mongo для PHP с помощью Puppet+Vagrant

Я экспериментирую с Vagrant и Puppet, подготавливая машину для разработки проекта на базе Apache/PHP/Mongo.

У меня все компоненты настроены правильно (с помощью модулей из Puppet Forge), но я не могу понять, как заставить PHP общаться с Mongo. phpinfo()показывает, что драйвер Mongo не установлен — что вполне логично, поскольку я понятия не имею, как его установить.

Модуль puppet, который я использую для установки PHP, взят из Lab42 и доступен по адресуhttp://github.com/lermit/puppet-php. В файле readme показано, как переключатьсямодулино нетводители(насколько мне известно, подключение к Mongo устанавливается через драйвер, а не модуль).

Любая помощь, советы или ссылки на .ppфайл, где это было сделано, были бы очень приветствуются. Спасибо!

Обновлять:

Придумал эту волшебную строчку:php::pecl::module { "mongo": }

По сути, добавить поддержку Mongo через PECL. Но когда 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, который автоматизирует это.

В-третьих, попробуйте использовать модули puppet, которые вы найдете, особенно на puppetforge:https://forge.puppetlabs.com/чтобы увидеть, работают ли они лучше или предлагают ли дополнительные функции.

Есть много хороших ресурсов по Vagrant и Puppet, но один из моих любимых — Deploying Railshttp://pragprog.com/book/cbdepra/deploying-rails- очевидно, ориентирован на Ruby on Rails, но он создает с нуля среду тестирования Vagrant/Puppet/VirtualBox, которая очень похожа на вашу.

решение2

Для меня ответом был параметр use_package:

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

Теперь все работает как часы!

Связанный контент