3

puppet プロビジョナーを使用してシンプルな Vagrant ボックスをセットアップしました。パペットで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 をインストールしようとしています。

パペットで文書化されたコードを試してみると、うまくいきます (システム ルビーに gem がインストールされると思います)。

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

現在の回避策: vagrant ユーザーとしてコマンドを実行すると機能しますが、見栄えがよくありません。

$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 モジュールを使用できます。vagrantで puppet モジュールを使用する方法については、puppet に関する Vagrant のドキュメントを参照してください。

于 2013-05-07T19:18:15.840 に答える