Я играю с Vagrant и Puppet, предоставляя машину разработки для проекта, основанного на Apache / PHP / Mongo.
У меня все компоненты настроены правильно (с использованием модулей из Puppet Forge), но, хоть убей, я не могу понять, как заставить PHP разговаривать с Mongo. phpinfo()
показывает, что драйвер Mongo не установлен - что имеет смысл только потому, что я понятия не имею, как его установить.
Модуль марионетки, который я использую для установки PHP, - это модуль от Lab42, доступный по адресу http://github.com/lermit/puppet-php . В файле readme показано, как переключать модули но нет водители (afaik, соединение 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
Итак, я кое-чего не понимаю по этому поводу:
Еще раз спасибо.
Для меня ответ был параметром use_package
:
php::pecl::module { "mongo":
use_package => 'no',
}
Теперь это работает как шарм!
Я уверен, что ответ на оба вопроса содержится в используемом вами марионеточном модуле.
Несомненно, есть большое преимущество в использовании модулей, разработанных другими, потому что вы можете извлечь выгоду из знаний, которые они встроили в модули, но я бы рекомендовал вам:
Сначала выясните, как выполнить установку вручную (т. Е. Без марионетки)
Во-вторых, создайте простой модуль Puppet, который автоматизирует это
В-третьих, попробуйте использовать найденные вами марионеточные модули, особенно. на марионеточной кузнице: https://forge.puppetlabs.com/ чтобы узнать, работают ли они лучше или предлагают дополнительные функции.
По Vagrant и Puppet есть много хороших ресурсов, но один из моих любимых - Deploying Rails. http://pragprog.com/book/cbdepra/deploying-rails - очевидно, сосредоточен на Ruby on Rails, но он создает среду тестирования Vagrant / Puppet / VirtualBox, которая очень похожа на вашу, с нуля.