2012-11-11 35 views
6

मैं निम्नलिखित प्रकट होते हैं:Vagrant, कठपुतली और NodeJS मॉड्यूल: NPM मॉड्यूल स्थापना पर त्रुटि फेंक

include nodejs 

package { 'serve': 
    ensure => latest, 
    provider => 'npm', 
} 

मैं puppetlab उपयोग कर रहा हूँ Node.js मॉड्यूल:

http://forge.puppetlabs.com/puppetlabs/nodejs

Vagrantfile:

Vagrant::Config.run do |config| 
    config.vm.box = "precise64" 
    config.vm.box_url = "http://files.vagrantup.com/precise64.box" 

    config.vm.provision :puppet do |puppet| 
    puppet.manifests_path = '~/work/environments/default/' 
    puppet.manifest_file = 'site.pp' 
    puppet.module_path = '~/work/environments/default/modules' 
    end 

end 

जब मैं vagrant up चलाता हूं तो मुझे मिल रहा है निम्न त्रुटि:

[default] Running provisioner: Vagrant::Provisioners::Puppet... 
[default] Running Puppet with /tmp/vagrant-puppet/manifests/site.pp... 
stdin: is not a tty 
err: /Stage[main]//Package[serve]/ensure: change from absent to latest failed: Could not update: Got nil value for ensure at /tmp/vagrant-puppet/manifests/site.pp:6 
notice: /Stage[main]/Nodejs/Package[nodejs]/ensure: ensure changed 'purged' to 'present' 
notice: /Stage[main]/Nodejs/Package[npm]/ensure: ensure changed 'purged' to 'present' 
notice: Finished catalog run in 14.89 seconds 

पहले तो मैंने सोचा कि शायद यह स्थापित NPM से पहले 'की सेवा' मॉड्यूल स्थापित करने के लिए कोशिश कर रहा है तो मैं require => Package[npm] कोशिश की, लेकिन है कि एक ही परिणाम दे दी है।

तो क्या कोई इस बात पर कुछ प्रकाश डाल सकता है कि यह 'सेवा' मॉड्यूल क्यों इंस्टॉल नहीं कर रहा है?

उत्तर

8

ऐसा लगता है कि प्रदाता को npm कमांड की आवश्यकता है, जो आपके पास अभी तक नहीं है।

की तरह कुछ करने के लिए अपने प्रकट फेरबदल का प्रयास करें:

class { 'nodejs': } -> package { 'serve': ensure => present, provider => 'npm', } 

वैकल्पिक रूप से, संभवतः:

include nodejs 

package { 'serve': 
    ensure => present, 
    provider => 'npm', 
    require => Package['npm'], 
} 
+0

आपको पैकेज ['npm'] की आवश्यकता कैसे हो सकती है? ऐसा प्रतीत नहीं होता है ("निर्भरता पैकेज नहीं मिला [npm]") – Karan

+0

आप "आवश्यकता => कक्षा ['नोडजेज']," –

11

मैं भी इस पार भाग गया - यह puppetlabs-NodeJS मॉड्यूल नहीं है की तरह मुझे लग रहा है वास्तव में ensure => latest स्वीकार करें, जो दस्तावेज़ीकरण के विपरीत है। मेरा मुद्दा तय किया गया था जब मैं ensure => present में बदल गया, और कोड विशिष्ट संस्करणों के साथ-साथ ensure => 1.12.4 उदाहरण के लिए समर्थन करता है।

+0

हाँ कर सकते हैं, यह सही जवाब है! –

+0

इसे ठीक करने के लिए एक पुल अनुरोध खुला है, लेकिन वर्तमान में यह ट्रैविस बिल्डिंग में असफल रहा है अगर कोई इसे सही करने में मदद करना चाहता है: https://github.com/puppetlabs/puppetlabs-nodejs/pull/78 – ScottSB