2016-12-01 5 views
1

私はCHEFスクリプトをスマートにして、Railsがインストールされていない場合はインストールしないようにしています。以下は現在私がどのように扱っているかですが、おそらくもっと良い方法があるようです。CHEFプログラムがインストールされているかどうかを確認するためにNot_Ifを使用する

execute 'install_rails' do 
    user 'root' 
    cwd '/root/' 
    command "/root/.rbenv/shims/gem install rails -v #{node['rails']['version']}" 
    not_if "rails -v | grep \'#{node['rails']['version']}\'" 
end 

誰でもこれを行うためのよりよい方法を経験していますか?

答えて

1

通常のgem_packageリソースまたはruby_gemリソースをpoise-rubyから使用するだけではどうですか?

+0

最初はgem_packageを試しましたが、Railsがまだインストールされていなくても、CHEFはそのリソースをスキップしていました。そこで私は行って、手動でやり始めました。 poise-rubyについて聞いたことがない。確かめます。 – Chiefwarpaint

+1

gemパッケージを使用している場合は、適切なルビを使用するようにgemバイナリパスをリソースプロパティとして設定してください。 – coderanger

関連する問題