我使用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 ...
答案 0 :(得分:1)
可能已为root
设置了npm代理。
Puppet使用root
凭据运行,而vagrant ssh
以vagrant
用户身份登录。因此,如果要运行vagrant
命令,则应指定它:
exec { 'npm_proxy':
command => 'npm config set proxy http://some.proxy:222',
path => '/usr/bin/:/bin/',
require => Package['nodejs'],
user => 'vagrant'
}
另一种选择可能是使用--global
标志全局设置npm代理。