Wie und auf eine benutzerdefinierte ssh-Schlüssel in einem vagrant base (baseline) box? (virtualbox)
In der vagrant-Dokumentation habe ich nicht gefunden, einen Hinweis auf wie auf eine Datei enthalten, die aus a enthalten Vagrantfile innerhalb der gleichen baseline-box, wenn Sie mit "vagrant package". Kann mir jemand helfen?
Details:
Beim erstellen einer neuen baseline-box von Grund auf neu für Landstreicher, Sie sind frei, verwenden Sie die standard-vagrant unsichere ssh-Schlüssel, oder Sie erstellen eine neue benutzerdefinierte Schlüssel. Ich habe die Letzte Sache. Und diese neue baseline-box funktioniert mit meiner custom-Taste, wenn ich mit meinem Vagrantfile mit dieser zusätzlichen Zeile:
config.ssh.private_key_path = "custom_key_file"
Ich jetzt beschlossen, verteilen meine baseline-box für meine team-Mitglieder. Das ist kein problem. Geben Sie einfach:
vagrant package --output custom.box
Alle anderen team-Mitglieder tun, kopieren Sie die "custom_key_file", um die Projekt-root-Verzeichnis und erstellen Sie eine "Vagrantfile" mit diesem Inhalt (mit einem version Control system):
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "custombox"
config.ssh.private_key_path = "custom_key_file"
end
Wenn Sie fertig sind, wird jedes team-Mitglied geben Sie den folgenden, um eine virtuelle Maschine basierend auf benutzerdefinierten.box-schnell und einfach:
vagrant box add custombox custom.box
vagrant up
Funktioniert einwandfrei.
Nun will ich tune meine baseline-box ein wenig vor der Verteilung. Ich möchte die die "custom_key_file" und eine "Vagrantfile.pkg", die wie folgt lautet:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "custombox"
config.ssh.private_key_path = "custom_key_file"
end
Erstellen, die abgestimmt baseline-box geben Sie mir:
vagrant package --output custom2v.box --vagrantfile Vagrantfile.pkg --include custom_key_file
Wenn ich entpacken Sie die custom2v.box kann ich sehen, es ist dieser Baum:
C:.
│ box-disk1.vmdk
│ box.ovf
│ Vagrantfile
│
└───include
custom_key_file
_Vagrantfile
Und "include/_Vagrantfile" hat den Inhalt meiner Vagrantfile.pkg. Ich kann hinzufügen, dass die box wie folgt:
vagrant box add custombox2v custom2v.box
einem neuen Projekt ist es nun sehr einfach, um es zu aktivieren für die wandernden. Fügen Sie einfach ein "Vagrantfile" liest sich wie folgt:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "custombox2v"
end
Aber wenn ich eine:
vagrant up
bekomme ich die folgende Fehlermeldung:
[...]
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
SSH:
* `private_key_path` file must exist: custom_key_file
Kann jemand helfen?
InformationsquelleAutor DanielaWaranie | 2014-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Grund ist Vagrant ist die Reihenfolge des Ladens und die Zusammenführung von dessen configs.
Was Sie wollen passieren ist Vagrant zu verwenden, der private Schlüssel befindet sich im inneren der box-Archiv.
Was wirklich passiert, wenn Sie ausführen, "bis" ist Vagrant führt Ihre config mit paar andere configs auf seiner "Last & merge" - Pfad.
Also in das Ende des Weges haben Sie eine große config mit der Einstellung:
config.ssh.private_key_path = "custom_key_file"
Also Vagrant suchen
custom_key_file
im gleichen Ordner wie die Vagrantfile und das ist, warum Sie Ihre Fehler.Überprüfen diese Antwort und dieses Problem für Informationen, wie Sie config Landstreicher zu suchen, die Schlüssel relativ zum Feld Vagrantfile.
InformationsquelleAutor m1keil