通过puppet安装node.js;包没找到

时间:2015-03-19 17:13:59

标签: node.js vagrant puppet

我尝试使用puppet在Vagrant盒子上安装node.js。我的Vagrantfile(Debian Wheezy)具有以下配置:

config.vm.provision :puppet, run: "always" do |puppet|
  puppet.manifests_path = "puppet/manifests"
  puppet.module_path = "puppet/modules"
  puppet.options = '--verbose'
end

内部puppet/modules我有官方puppetlabs-nodejs模块(重命名为nodejs)。在puppet/manifests内我开始小 - default.pp就是这样:

Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] }
include nodejs

当我运行vagrant provision时,我收到以下错误:

==> default: err: /Stage[main]/Nodejs/Package[nodejs]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install nodejs' returned 100: Reading package lists...
==> default: Building dependency tree...
==> default: Reading state information...
==> default: E: Unable to locate package nodejs
==> default: 
==> default: err: /Stage[main]/Nodejs/Package[npm]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install npm' returned 100: Reading package lists...
==> default: Building dependency tree...
==> default: Reading state information...
==> default: E: Unable to locate package npm
==> default: 

我可以告诉我the readme。这个自述文件是不完整的?安装节点还有更多内容,而不仅仅是包含模块吗?

2 个答案:

答案 0 :(得分:1)

您可以使用manage_package_repo参数:

,而不是使用exec
  package { 'nodejs':
    ensure              => present,
    manage_package_repo => true,
  }

这将运行这个Puppet代码(与exec相同,但更加幂等!)

if ($ensure == 'present') {
    apt::source { 'nodesource':
      include_src       => $enable_src,
      key               => '1655A0AB68576280',
      key_source        => 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key',
      location          => 'https://deb.nodesource.com/node',
      pin               => $pin,
      release           => $::lsbdistcodename,
      repos             => 'main',
      required_packages => 'apt-transport-https ca-certificates',
    }
  }

答案 1 :(得分:0)

您需要首先添加run以运行指向包的指针。

curl -sL https://deb.nodesource.com/setup | sudo bash -

您需要exec块才能执行此操作。

使用该命令执行exec,并将set设置为'/etc/apt/sources.list.d/nodesource.list'