Используя chef
у меня есть простой рецепт, который устанавливает гем, пример:
gem_package "passenger" do
version node['passenger']['version']
end
Я также хочу установить ruby с другой поваренной книгой, это может быть Ruby 1.9.3 для некоторых серверов и Ruby Enterprise 1.8.7 для других. Поэтому я подумал, что могу использовать gem_binary
и ohai
, чтобы сделать вот так:
gem_package "passenger" do
version node['passenger']['version']
gem_binary "#{languages['ruby']['bin_dir']/gem}"
end
Но потом начинаются проблемы, потому что languages['ruby']
не меняется при установке нового ruby. Ruby Enterprise устанавливается в /opt/ruby-enterprise
и добавляется в PATH
через /etc/profile.d/ree.sh
, но ohai
не принимает его во время того же запуска, а подхватывает при следующем запуске.
При первом запуске ohai
сообщает, что languages['ruby']
устанавливается в /opt/vagrant_ruby/bin/ruby
при использовании с предоставлением vagrant
и chef_solo
. И гем-пассажир установлен не в тот рубин.
Как я могу заставить ohai
распознавать только что установленный ruby?