Meine Umgebung: Virtualbox, CentOs VM 6.5 mit installiertem Chefclient Ubuntu 12.04 Vagrant Box
Problem: Ich versuche es $knife boostrap vagrant.vm -x vagrant -N "target1"
, aber ich bekomme verschiedene Fehlermeldungen:
"Connecting to vagrant.vm"
ERROR: Network Error: getaddrinfo: Name or service not known. Check your knife configuration and network settings.
Ich habe versucht, eine Verbindung zur Vagrant VM unter Verwendung der IP 127.0.0.1 herzustellen
Error: Network error: connection refused - connect(2) for 127.0.0.1 port 22. Check your knife configuration and network settings.
Ich kann ssh als vagrant@127.0.0.1 in die Vagrant Box ohne Probleme. Das /etc/hostname
hat die richtige IP und den vollqualifizierten Domänennamen der VM.
Warum kann der Messer-Boot-Strap-Befehl keine Verbindung zu meiner Vagrant VM herstellen? Wie löse ich dieses Problem?
Antworten:
2 für die Antwort № 1Wenn Vagrant eine Maschine startet, hört sie nicht zuan Port 22 direkt am localhost; Die Maschine überwacht Port 22, aber Vagrant richtet Port-Forwarding für SSH ein, und die genauen Einzelheiten sind vom Anbieter (Virtualbox vs. VMware usw.) und den Netzwerkoptionen (Bridged, nur Host usw.) abhängig in der Vagrantfile.
Nach dir vagrant up
sehen Sie eine Ausgabe, die so aussieht:
default: Fixed port collision for 22 => 2222. Now on port 2201.
default: Starting the VMware VM...
default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 192.168.21.131:22
...
default: Forwarding ports...
default: -- 22 => 2201
Nachdem die Maschine hochgefahren ist, können wir SSH direkt ausführen:
% ssh -p2201 vagrant@localhost
Warning: Permanently added "[localhost]:2201" (RSA) to the list of known hosts.
vagrant@localhost"s password:
Last login: Mon Apr 20 04:18:44 2015 from 192.168.21.1
[vagrant@localhost ~]$
Dann knife bootstrap
kann mit der Port-Option durchgeführt werden, -p 2201
.
Ich frage mich jedoch, warum Sie es verwenden knife bootstrap
gegen eine Landstreichermaschine. Vagrant unterstützt die Verwendung von Chef direkt als Provisioner, über Chef-Solo, Chef-Client mit einem regulären Chef-Server, Chef-Null (ein In-Memory-Chef-Server, der häufig zum Testen verwendet wird) oder die Anwendung eines Kochs. Einzelheiten finden Sie in der Provisioning-Dokumentation auf der Vagrant-Site.