Использование RVM в Puppet-манифестах
В настоящее время я копаю глубже в Puppet и с несколькими манифестами я сталкиваюсь с проблемами, касающимися установленной версии ruby или rubygems. Я предполагаю, что другие, вероятно, также сталкиваются с такими проблемами. Поскольку я не мог найти правильные указатели через Google, я хотел бы спросить, есть ли у кого-нибудь хороший пример использования RVM с Puppet и запуска Bundler и Passenger внутри определенного набора гемов, предоставленного RVM.
Я пробовал puppet-rvm из blt04, но это не помогает запускать компоновщик внутри набора гемов RVM, и я не смог найти информацию о настройке приложений ruby для запуска в контексте RVM (например, с использованием проекта.rvmrc)
2 ответа
class rails::rvm {
package { [ "autoconf",
"bison",
"curl",
"libreadline-dev",
"subversion",
"zlib1g-dev" ]: ensure => installed }
file { "/usr/local/bin/rvm-install-system-wide":
source => "puppet:///modules/rails/rvm-install-system-wide",
mode => "700",
}
exec { "install-rvm":
command => "/usr/local/bin/rvm-install-system-wide",
creates => "/usr/local/bin/rvm",
require => [ Package["curl"], Package["subversion"], File["/usr/ local/bin/rvm install-system-wide"] ],
logoutput => on_failure,
}
append_if_no_such_line { "setup-rvm-shell-environment":
file => "/etc/bash.bashrc",
line => "[[ -s /usr/local/rvm/scripts/rvm ]] && . /usr/local/ rvm/scripts/rvm",
}
}
Что я делаю, так это добавляю пользователей, которым нужно будет запустить rvm, в группу rvm, а затем добавляю префиксы ко всем execs rvm do
, Взгляните на мой великолепный модуль - повсюду есть что-то от rvm.