在npm install上通过puppet部署sails.js应用程序失败

时间:2014-03-07 13:06:26

标签: npm puppet sails.js

我正在通过puppet& amp;部署sails.js应用程序这是我的清单:

class sails {
    include apt

    class { 'nodejs': 
        manage_repo => true,
    }

    vcsrepo { '/var/www':
      ensure   => latest,
      provider => git,
      source   => 'https://www.gitrepo.com',
      revision => 'master',
      require  => Class['nodejs'],
    } 

    exec { 'npm install':
        path    => '/usr/bin/',
        cwd     => '/var/www/',
        require => [Vcsrepo['/var/www'],Class['nodejs']],
    }
}

一直顺利到npm install,它会通过大多数依赖项,但之后会发生这种情况:

Notice: /Stage[main]/sails/Exec[npm install]/returns: npm http 200 https://registry.npmjs.org/ws/-/ws-0.4.31.tgz 
Notice: /Stage[main]/sails/Exec[npm install]/returns: 
Notice: /Stage[main]/sails/Exec[npm install]/returns: > bson@0.1.8 install /var/www/node_modules/sails/node_modules/connect-mongo/node_modules/mongodb/node_modules/bson 
Notice: /Stage[main]/sails/Exec[npm install]/returns: > (node-gyp rebuild 2> builderror.log) || (exit 0) 
Notice: /Stage[main]/sails/Exec[npm install]/returns: 
Notice: /Stage[main]/sails/Exec[npm install]/returns: execvp(): No such file or directory

关于这是为什么的任何想法?如果我在/var/www中手动运行npm install,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,因为我没有安装git。

答案 1 :(得分:0)

我遇到了同样的问题。最后,我能够解决它:

sudo -i sh -c "cd ${app_directory}; npm install"

根据此处的讨论: https://github.com/TooTallNate/node-gyp/issues/115#issuecomment-7386287