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

Schreibe einen Kommentar