Pic*_*els 6 puppet node.js npm vagrant
我有以下清单:
include nodejs
package { 'serve':
ensure => latest,
provider => 'npm',
}
Run Code Online (Sandbox Code Playgroud)
我正在使用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
Run Code Online (Sandbox Code Playgroud)
当我运行时,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
Run Code Online (Sandbox Code Playgroud)
起初我想也许它正在尝试在安装npm之前安装'serve'模块,所以我试过require => Package[npm]但是给出了相同的结果.
那么有人可以说明为什么它没有安装"服务"模块吗?
小智 11
我也跑过这个 - 它看起来像puppetlabs-nodejs模块实际上不接受ensure => latest,这与文档相反.我改变的时候修复了我的问题ensure => present,并且代码看起来也支持特定的版本ensure => 1.12.4.
小智 8
它似乎是排序 - 提供者需要npm命令,你还没有.
尝试将您的清单改为:
class { 'nodejs': } -> package { 'serve': ensure => present, provider => 'npm', }
Run Code Online (Sandbox Code Playgroud)
或者,可能:
include nodejs
package { 'serve':
ensure => present,
provider => 'npm',
require => Package['npm'],
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6664 次 |
| 最近记录: |