Puppet+Vagrant를 사용하여 PHP용 Mongo 드라이버 설치

Puppet+Vagrant를 사용하여 PHP용 Mongo 드라이버 설치

저는 Vagrant와 Puppet을 가지고 놀면서 Apache/PHP/Mongo 기반 프로젝트를 위한 개발 머신을 프로비저닝하고 있습니다.

Puppet Forge의 모듈을 사용하여 모든 구성 요소를 올바르게 설정했지만 평생 동안 PHP가 Mongo와 대화하도록 만드는 방법을 알 수 없습니다. phpinfo()Mongo 드라이버가 설치되지 않았다는 메시지가 표시됩니다. 설치 방법을 전혀 모르기 때문에 이는 의미가 있습니다.

PHP를 설치하는 데 사용하는 꼭두각시 모듈은 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 

따라서 이에 대해 제가 이해하지 못하는 몇 가지 사항은 다음과 같습니다.

  1. Puppet에게 PECL을 통해 모듈을 설치하도록 요청했는데 왜 apt-get을 통해 설치합니까?
  2. 왜 해당 패키지를 찾을 수 없나요? 작동하게 하려면 어떤 저장소를 추가해야 합니까?

다시 한 번 감사드립니다.

답변1

두 질문에 대한 답은 여러분이 사용하고 있는 puppet 모듈에 있다고 확신합니다.

다른 사람이 개발한 모듈을 사용하면 확실히 큰 이점이 있습니다. 왜냐하면 다른 사람이 모듈에 내장했다는 지식을 얻을 수 있기 때문입니다. 그러나 다음을 권장합니다.

먼저 수동으로 설치하는 방법을 알아봅니다(즉, 꼭두각시 없이).

둘째, 이를 자동화하는 간단한 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', }

이제 그것은 매력처럼 작동합니다!

관련 정보