Ich möchte eine neue Ubuntu 10.04-Box mit Ruby 1.9.2 bereitstellen. Ich verwende Vagrant und Chef Solo, um die Box mit allem, was ich brauche, zu versorgen (z. B. Rails, Rake, MongoDB). Die Standard-Ruby-Version ist 1.8.7.
Gibt es eine Möglichkeit, Ruby 1.9.2 als Teil des Bereitstellungsprozesses von Vagrant / Chef zu installieren?
Ich habe auf der Chef-Website gelesen, dass ich meine eigene Bootstrap-Vorlage verwende - möglicherweise mit einem Messer - wie dieser >, aber weil ich Vagrant benutze, bin ich mir nicht sicher, wo ich diese Vorlage ablegen soll - ich habe kein Chef-Repo, kein .chef-Verzeichnis oder sogar irgendwelche Koch-Sachen in / etc / chef.
Zuerst ein bisschen Kontext. Die meisten Vagrant-Basisboxen installieren Ruby für die Verwendung durch Chef und Puppet, aber die neuesten tun dies in / opt / ruby, anstatt die Systempakete zu verwenden. Sie fügen auch / opt / ruby / bin dem Pfad hinzu, aber am Ende.
Diese VeeWee-Vorlage zeigt, wie die 10.04-Box derzeit aufgebaut ist: Ссылка
Was Ihre Frage betrifft, gibt es mehrere verschiedene Kontexte, die Sie versuchen könnten zu adressieren, jede mit einer anderen Lösung. Hoffentlich ist einer von denen, was Sie suchen.
Führe Kochrezepte mit 1.9.2
ausVielleicht möchten Sie die Kochrezepte unter 1.9.2 testen und 1.8.7 nicht in Ihrer Nähe haben. Der beste Weg, dies zu erreichen, wäre, eine eigene VeeWee Vorlage zu erstellen und eine neue Basisbox zu erstellen. Sie könnten die oben verlinkte Version ändern, um 1.9.2 statt 1.8.7 zu kompilieren und den Anweisungen auf Ссылка
folgenEntwickeln Sie mit Ruby 1.9.2
Wahrscheinlich ist es wahrscheinlicher, dass Sie mit 1.9.2 etwas Ruby-Code hacken wollen. Dazu müssen Sie nur Ruby installieren und die Binärdateien auf Ihrem Pfad vor dem / opt / ruby-Eintrag haben. Dazu gibt es mehrere Möglichkeiten:
All dies könnte mit einem Chefrezept verwaltet werden. Ich würde wahrscheinlich nicht für die Kompilierungsoption gehen, entweder nur eine direkte Download-und Paket-Ressource oder das folgende RVM Kochbuch könnte praktisch Ссылка
Die * gem_binary * -Option auf der Paketressource könnte hier auch nützlich sein, je nachdem, wie Sie sicherstellen möchten, dass Edelsteine für Ihren neuen 1.9.2 Ruby installiert werden (statt 1.8.7 in opt)
Das Ziel von knife bootstrap
besteht darin, Chef auf dem Zielsystem zu installieren, damit es den Chef-Client ausführen kann. In den Vagrant-Basisboxen ist der Chef bereits installiert. Wenn Sie also nichts Bestimmtes tun und mehrere Versionen von Chef ausführen möchten, würde ich diesen Weg vermeiden. Die eingebauten Küchenchefs wie Ссылка sind eine bessere Wahl.
Ich weiß, dass die Frage ziemlich alt ist und bereits beantwortet wurde, aber ich hoffe, dass dies für jemanden, der über diese Frage stolpert, immer noch interessant sein kann.
Ich habe ein Github-Repo erstellt, das mehrere Konfigurationen für das Bauen und Bereitstellung einer Vagrant-Box , ohne dass ein Bereitstellungsrezept von Grund auf neu erstellt werden muss. .
Wenn Sie beispielsweise die aktuell zur Verfügung gestellte Konfiguration verwenden, können Sie eine Box mit folgenden Elementen erstellen und bereitstellen:
Hier ist eine Einführung Artikel auf meinem Blog.
Da dies fast der Anfrage entspricht, habe ich das Gefühl, dass es sich lohnt, diese späte Antwort hinzuzufügen:)
Hier ist das Rezept, das ich verwende, um Ruby 1.9.2 zu installieren
%Vor%