Puppet npm代理问题

时间:2014-06-04 16:00:11

标签: node.js npm vagrant puppet

我使用Vagrant + puppet

有init.pp

class { 'apt':
  always_apt_update    => true,
  proxy_host           => 'some.proxy',
  proxy_port           => '222'
}

apt::ppa { 'ppa:chris-lea/node.js':  }

package {
  [
    'nodejs'
  ]:
  ensure => "installed",
  require => Apt::Ppa['ppa:chris-lea/node.js']
}

exec { 'npm_proxy':
  command => 'npm config set proxy http://some.proxy:222',
  path => '/usr/bin/:/bin/',
  require => Package['nodejs'],
}

似乎没问题。命令已成功执行。但是当我连接到box(vagrant ssh)时,npm proxy为null ...

1 个答案:

答案 0 :(得分:1)

可能已为root设置了npm代理。

Puppet使用root凭据运行,而vagrant sshvagrant用户身份登录。因此,如果要运行vagrant命令,则应指定它:

exec { 'npm_proxy':
  command => 'npm config set proxy http://some.proxy:222',
  path => '/usr/bin/:/bin/',
  require => Package['nodejs'],
  user => 'vagrant'
}

另一种选择可能是使用--global标志全局设置npm代理。