Назад | Перейти на главную страницу

Использование RVM в манифестах Puppet

В настоящее время я копаюсь глубже в Puppet и с несколькими манифестами сталкиваюсь с проблемами, связанными с установленной версией ruby ​​или rubygems. Я предполагаю, что другие, вероятно, тоже сталкиваются с такими проблемами. Поскольку я не смог найти нужные указатели через Google, я хотел бы спросить, есть ли у кого-нибудь хороший пример использования RVM с Puppet и запуска Bundler и Passenger внутри определенного гемсета, предоставленного RVM.

Я попытался марионетка-rvm из blt04, но это не помогает запускать сборщик внутри гемсета RVM, и я не смог найти информацию о настройке приложений ruby ​​для запуска в контексте RVM (например, с использованием проекта .rvmrc)

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, а затем префикс всех исполняющих файлов с помощью rvm do. Взгляни на мой ужасный модуль - там повсюду есть rvm-файлы.