3

我已经用 puppet 供应器设置了一个简单的 Vagrant 盒子。使用 puppet 我安装了 rvm:

exec { 'install_rvm':
  command => "${as_vagrant} 'curl -L https://get.rvm.io | bash -s stable'",
  creates => "${home}/.rvm",
  require => Package['curl']
}

和红宝石:

exec { 'install_ruby':
  command => "${as_vagrant} '${home}/.rvm/bin/rvm install 2.0.0 --latest-binary --autolibs=enabled && rvm --fuzzy alias create default 2.0.0'",
  creates => "${home}/.rvm/bin/ruby",
  require => Exec['install_rvm']
}

我正在尝试安装一个可以在 rvm 的默认 ruby​​ 版本(在本例中为 2.0.0)上可用的 gem

如果我尝试使用 puppet 记录的代码,它就可以工作(我想它会在系统 ruby​​ 上安装 gem):

package { 'sinatra':
    ensure   => 'installed',
    provider => 'gem',
}

当前的解决方法: 如果我以流浪用户身份执行命令,它可以工作,但看起来不太好:

$as_vagrant   = 'sudo -u vagrant -H bash -l -c'

exec { "${as_vagrant} 'sudo -u vagrant -H bash -l -c gem install stasis'":
  require => Exec['install_ruby']
}

有任何想法吗?
谢谢你。

4

1 回答 1

2

您可以使用puppet forge 中的这个 rvm 模块。查看有关 puppet 的 Vagrant 文档,了解如何将 puppet 模块与 vagrant 一起使用。

于 2013-05-07T19:18:15.840 回答