/ / Wie installiere ich RVM über Vagrant und Puppet - Ruby-on-Rails, Rubin, Landstreicher, Marionette

Wie installiere ich RVM über Vagrant und Puppet - Ruby-on-Rails, Rubin, Vagabund, Marionette

Ich provisioning eine neue Vagrant-Box für Ruby on Rails Entwicklung (mit VirtualBox) und möchte RVM + Ruby 2.3.0 als Teil des Vagrant Provisioning-Prozesses hinzufügen.

Meine Vagrant-Datei:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"

config.vm.network "forwarded_port", guest: 3000, host: 3000

config.vm.provision :puppet do |puppet|
puppet.manifests_path = "puppet/manifests"
puppet.module_path    = "puppet/modules"
puppet.manifest_file  = "development.pp"
end

end

Und Puppe / Manifeste / Entwicklung.pp:

class requirements {
group { "puppet": ensure => "present", }
exec { "apt-update":
command => "/usr/bin/apt-get -y update"
}

package {
["mysql-client", "mysql-server", "libmysqlclient-dev"]:
ensure => installed, require => Exec["apt-update"]
}
}

include requirements

Dies installiert gerade mysql im Moment. Ich würde gern RVM + hinzufügen und einen Standard-Ruby installieren (zB 2.3.0).

Es gibt diesen Leitfaden: http://blog.csanchez.org/2014/01/14/installing-rvm-and-multiple-ruby-versions-with-puppet/

Welches benutzt dieses Puppenmodul: https://forge.puppetlabs.com/maestrodev/rvm

Ich habe keine Puppe installiert, denn wenn ich versuche zu rennen:

puppet module install maestrodev-rvm

Ich bekomme "-bash: puppet: command not found".

Wenn man durch die Puppet-Dokumente sieht, erscheint esziemlich kompliziert, einen Puppet-Client / Server zu installieren / einzurichten. Das scheint übertrieben zu sein, nur um das RVM Puppenmodul zu benutzen. Außerdem werden Designer im Team diesen Prozess verwenden, so dass er so einfach wie möglich sein muss.

Jede Hilfe würde sehr geschätzt werden.

Antworten:

2 für die Antwort № 1

Ich habe keine Puppe installiert

Ja, Sie tun - Puppet ist auf Ihrer VM installiert, sonst könnten Sie MySQL und andere nicht bereitstellen.

Sie führen wahrscheinlich den Befehl aus puppet module install maestrodev-rvm von Ihrem Host, während dies auf der VM ausgeführt werden muss.

Es gibt verschiedene Möglichkeiten, wie Menschen das habenModule auf der VM eingerichtet (Bibliothekar, einige Downloads alle in Modul / Ordner ...), was ich tun, ist eine Shell-Provisioning, die alle notwendigen Module installieren wird. In deiner Vagrantdatei hinzufügen

config.vm.provision "shell", path: "puppet/script/install-puppet-modules.sh"

vergewissere dich, dass diese Zeile vor deiner Marionettenbereitstellung steht - die install-puppet-modules.sh wird sowas sein

#!/bin/bash

mkdir -p /etc/puppet/modules;

if [ ! -d /etc/puppet/modules/maestrodev/rvm ]; then
puppet module install maestrodev-rvm --version xxx
fi

Ich möchte gerne auf die Version hinweisen. Wenn es eine neue Version des Moduls in der Schmiede gibt, kann es zumindest kaputt gehen, zumindest weiß ich, dass Version xxx getestet wurde.

So können Sie jetzt hinzufügen class { "rvm": } und so weiter, um rvm und ruby ​​in deinem zu installieren puppet/manifests/development.pp Datei