SSH Vagrant ล้มเหลวด้วย VirtualBox


39

คนจรจัดขึ้นล้มเหลวเมื่อมันไปถึงส่วนของ ssh:

myterminal$ vagrant up
[default] VM already created. Booting if its not already running...
[default] Running any VM customizations...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- ssh: 22 => 2222 (adapter 1)
[default] -- db2: 30003 => 30003 (adapter 1)
[default] Cleaning previously set shared folders...
[default] Creating shared folders metadata...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

จากนั้นเมื่อฉันลองและเชื่อมต่อโดยใช้คนจรจัด ssh หรือคนจรจัดโหลดซ้ำหรือคล้ายกันฉันได้รับสิ่งนี้:

myterminal$ vagrant reload
[default] Attempting graceful shutdown of linux...
SSH connection was refused! This usually happens if the VM failed to
boot properly. Some steps to try to fix this: First, try reloading your
VM with `vagrant reload`, since a simple restart sometimes fixes things.
If that doesn't work, destroy your VM and recreate it with a `vagrant destroy`
followed by a `vagrant up`. If that doesn't work, contact a Vagrant
maintainer (support channels listed on the website) for more assistance.

กรุณาช่วย! ฉันนิ่งงันจริงๆ

ขอแสดงความนับถือ,

ลุค

คำตอบ:


10

ฉันเห็นปัญหานี้กับการตั้งค่าของฉันและในที่สุดก็ จำกัด ให้แคบลงตามความจริงที่ว่าฉันได้เพิ่มชื่อลงในไฟล์โฮสต์ในเครื่อง ดังนั้นฉันจึง:

127.0.0.1 localhost myname myalias

ลบสิ่งmyaliasที่ฉันเพิ่มและมันบูตได้โอเค ขอบคุณ @saphirlazuli สำหรับเบาะแสที่เกี่ยวข้องกับระบบเครือข่าย


วิธีแก้ปัญหาคืออะไรถ้าฉันต้องการรักษา myalias
มิกกี้ชอง

หากคุณต้องการใช้นามแฝงวิธี Debian / Ubuntu คือการรักษาบรรทัดแรกเป็นเพียง127.0.0.1 localhostแต่เพิ่มบรรทัดที่สองที่มีนามแฝงของคุณเช่น:127.0.1.1 foo bar baz
CodeGnome

26

ฉันมีปัญหาเดียวกันกับช่องที่ให้ไว้ใน "เริ่มต้นใช้งาน" ของเว็บไซต์ Vagrant โซลูชันของฉันด้านล่างใช้สำหรับกล่องบทช่วยสอนนี้

ฉันหาวิธีแก้ปัญหาที่นี่: https://github.com/mitchellh/vagrant/issues/391

  1. ใน VagrantFile เพิ่มโหมด gui: config.vm.boot_mode = :gui
  2. วิ่ง vagrant up
  3. ใน gui ให้เข้าสู่ระบบด้วยผู้ใช้ "คนจรจัด" (รหัสผ่าน = "คนจรจัด")
  4. int the gui, run sudo /etc/init.d/networking restart, ใน/etc/network/interfacesไฟล์ตอนนี้คุณต้องมีส่วนที่มี#VAGRANT-BEGIN [...]#VAGRANT-END
  5. ทำงานvagrant reloadบนเครื่องทางกายภาพ

3
ขอบคุณสำหรับสิ่งนี้ ฉันเคยใช้ Vagrant มาก่อนแล้วมันก็หยุดทำงานกับกล่องใหม่ ความคิดใดที่ทำให้เกิดอะไร
Andrew Vit

sudo /etc/init.d/networking การรีสตาร์ทใช้งานได้สำหรับฉันขอบคุณ!
Anatoly

2
ฉันรีสตาร์ท แต่ใน / etc / network / interfaces ฉันไม่มีส่วนที่มี # VAGRANT-BEGIN [... ] # VAGRANT-END เบาะแสใด ๆ ทำไม? ฉันสามารถเพิ่มมันด้วยตนเองได้ไหม?
sparrovv

1
ฉันได้รับThe following settings shouldn't exist: boot_mode
Calin

1
มีในเวอร์ชั่นล่าสุดที่คุณต้องใส่ v.gui = true สำหรับการกำหนดค่าผู้ให้บริการ
Calin

6

นี่เป็นปัญหาต่อเนื่องของฉันและดูเหมือนว่าจะเกี่ยวข้องกับระบบเครือข่าย ผมพบว่าบางข้อมูลที่เป็นประโยชน์มากขึ้นในคนจรจัด GitHub ออก# 391และ# 455 ฉันพยายามลบเครือข่ายเฉพาะโฮสต์ที่ไม่ได้ใช้ในการตั้งค่า VirtualBox (ตามที่แนะนำเป็นการแก้ไขที่เป็นไปได้ในหนึ่งในปัญหา GitHub) ซึ่งดูเหมือนจะไม่ช่วย

การเริ่มต้นในโหมด gui (ตามที่อธิบายไว้ในคำตอบก่อนหน้า) เป็นวิธีที่ดีในการแก้ปัญหา / แก้ไขปัญหา ฉันพบว่าเป็นเพราะเหตุผลอะไรก็ตาม VM ไม่สามารถรับที่อยู่ IP เมื่อเริ่มต้นได้ การเริ่มต้นในโหมด GUI จากนั้นเข้าสู่ระบบ (คนเร่ร่อน / คนเร่ร่อน) และทำงานsudo dhclientใน guest OS จะดึงที่อยู่ IP และกระบวนการติดตั้ง Vagrant จะเสร็จสมบูรณ์

ยังคงมองหาการแก้ไขอย่างถาวรแม้ว่า

หวังว่านี่จะช่วยได้!

[แก้ไขเพื่อเพิ่ม]: มีการเพิ่มคำแนะนำที่เป็นประโยชน์ในGitHub ฉบับที่ 455ซึ่งเกี่ยวข้องกับการเพิ่มการกำหนดค่าต่อไปนี้ในVagrantfile:

config.ssh.max_tries = 150

ขณะนี้ใช้งานได้สำหรับฉันและดูเหมือนจะสมเหตุสมผลเนื่องจากปัญหาดูเหมือนว่าจะเกี่ยวข้องกับการหมดเวลา - การเพิ่มจำนวนครั้งควรเพิ่มความน่าจะเป็นของกระบวนการ SSH ที่ประสบความสำเร็จในเวลา มันเป็นปัญหาที่เกิดขึ้นไม่สม่ำเสมอในตอนแรกดังนั้นฉันจะจองการตัดสินใจชั่วครู่หนึ่ง ขอบคุณ karel1980 สำหรับการแนะนำการแก้ไข


การลบเครือข่ายเฉพาะโฮสต์ในการตั้งค่า VirtualBox ของฉันก็ใช้งานได้สำหรับฉัน! ขอขอบคุณ!
Duke

1
ดูเหมือนว่าการตั้งค่านี้จะถูกระบุไว้ ณ วันที่ 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

หากvagrant upล้มเหลวฉันขอแนะนำสิ่งต่อไปนี้:

  1. Boot ด้วยโหมด gui : สิ่งนี้จะช่วยดูว่าภาพแตกหรือไม่ (เช่นก่อนที่จะเริ่มการเตรียมใช้งาน) หรือตั้งค่าconfig.vm.boot_mode = :guiในVagrantfile
  2. บันทึกดีบัก : การเรียกใช้การตั้งสำรองที่มีการแก้ปัญหา ,chef.log_level = :debug
  3. ทำใหม่ในกล่อง : บางครั้งคุณจำเป็นต้องติดตั้งบางสิ่งบางอย่างก่อนที่ทุกอย่างจะทำงาน - เพื่อบูต bootstrapper นั่นเป็นไปไม่ได้จริงๆดังนั้นวิธีที่ง่ายที่สุดคือการบูต vm โดยไม่ต้องเตรียมการติดตั้งสิ่งที่คุณต้องการและทำกล่องใหม่อีกครั้ง ( vagrant box repackage fooจากvagrant import fooนั้นเพิ่มลงfooในของคุณVagrantfile)

หมายเหตุ: โหมด gui สามารถมีปัญหาอื่น ๆ ได้เช่นสำหรับฉันไม่มีการเตรียมใช้งานกับคนจรจัด0.7.5เมื่อเปิดใช้งาน gui ก็ยังดีที่จะแก้ปัญหากล่องจริง


2

82540EMประเภทบัตรเครือข่ายของฉันเป็นชุดเดิมที่จะ ฉันเปลี่ยนเป็นAm79C973และตอนนี้ Vagrant ทำงานได้ทุกครั้ง ฉันเริ่มต้น VMs หลายครั้งแม้กระทั่งรีบูตโฮสต์และยังใช้งานได้

คำสั่งคือ:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

อย่าลืมทำการบรรจุใหม่และอ่านกล่องของคุณไปยัง Vagrant

ฉันใช้ Debian Squeeze 64-bit ในฐานะโฮสต์และแขกโดยใช้ VirtualBox 4.1.16 บนเครื่อง Core i7-2600


1

หากติดตั้งโมดูลเคอร์เนลแล้วให้ลองเริ่ม VM โดยตรงด้วย VirtualBox สิ่งนี้จะแสดงให้คุณเห็นข้อผิดพลาดในการเริ่มต้นใด ๆ ที่เกิดขึ้นกับ VM boots ปัญหาเช่นข้อผิดพลาดของระบบไฟล์จะหยุด daemon เซิร์ฟเวอร์ SSH จากการทำงานอย่างถูกต้อง


1

ฉันมีปัญหาเดียวกันกับ osx (VirtualBox 4.1.0 และ Vagrant 0.8.6) และสำหรับฉันความช่วยเหลือเพียงอย่างเดียวคือ:

  1. เข้าสู่ระบบด้วย: gui โดยเข้าสู่ระบบ / ผ่าน: คนเร่ร่อน / คนเร่ร่อน
  2. แก้ไขไฟล์“ /etc/rc.local” เพื่อรวมบรรทัด“ sh /etc/init.d/networking restart” ก่อน "exit 0″
  3. ปิดการใช้งาน: gui
  4. โหลดซ้ำอีกครั้ง

ฉันพบสิ่งนี้แล้วที่: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov


1

ฉันมีปัญหาเดียวกันนี้ ในกรณีของฉันไม่ได้เปิดใช้งานการจำลอง 64 บิต การเปิดใช้งานคุณลักษณะนี้ในประวัติของฉันแก้ไขปัญหาได้


1

กล่องผู้เยี่ยมชมของฉันจะไม่สามารถบูตได้อย่างถูกต้องเนื่องจากปัญหาของดิสก์

ฉันบังคับให้ VM ปิดผ่าน

VBox จัดการการควบคุม poweroff vm

จากนั้นฉันแก้ไขของฉันVagrantfileเพื่อรวมบรรทัดนี้:

config.vm.boot_mode =: gui

ต่อไปฉันวิ่งใหม่

ร่อนเร่ขึ้น

ใน GUI ที่โผล่ขึ้นมาฉันต้องเรียกใช้ยูทิลิตี้ 'disk fixer'

หลังจากรันยูทิลิตี้ดิสก์แล้ว VM ของฉันก็สามารถบูตได้สำเร็จจากนั้นฉันก็สามารถเรียกvagrant sshใช้ได้


1

ฉันไม่ใส่คำในส่วนของไฟล์ Vagrant เช่นนี้:

  config.vm.provider :virtualbox do |vb|
    # Don't boot with headless mode
    vb.gui = true

    # Use VBoxManage to customize the VM. For example to change memory:
    # vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

ฉันบันทึกมันแล้วฉันก็ทำ

vagrant reload

แล้วสิ่งต่าง ๆ ก็ใช้ได้ดี ฉันไม่แน่ใจว่าทำไมถึงแก้ไขได้



0

ปัญหาของฉันคือสิ่งนั้นค่ะ

/etc/hosts

ฉันมีรายการ

127.0.1.1 lucid32

ที่เป็นชื่อกล่องของผมก็คือlucidtestผมเปลี่ยนบรรทัดข้างต้นเพื่อ

127.0.1.1 lucidtest

และมันก็ใช้งานได้


0

ข้อความนี้แนะนำเซิร์ฟเวอร์ ssh ไม่ได้ทำงานบน VM ตรวจสอบให้แน่ใจว่าได้ติดตั้งแล้ว

sudo apt-get install openssh-server

และวิ่ง

ssh localhost

ไม่ควรให้ข้อผิดพลาด

หากต้องการยกเว้นข้อผิดพลาดภายในคนพเนจรคุณควรลอง ssh เข้าสู่ vm โดยตรงโดย:

ssh vagrant @ localhost -p2222

(สมมติว่าผู้ใช้เริ่มต้นและการส่งต่อพอร์ต)


0

ใน windows 7 ทำงาน

vagrant ssh

ถ้าคุณได้รับสิ่งนี้ ...

`vagrant ssh` isn't available on the Windows platform. You are still able
to SSH into the virtual machine if you get a Windows SSH client (such as
PuTTY). The authentication information is shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: U:/.vagrant.d/insecure_private_key

จากนั้นคุณควรใช้สิ่งนี้ ...

ssh vagrant@127.0.0.1 -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

แจ้งให้ทราบล่วงหน้าฉันใช้ cygwin ในกล่อง windows ของฉันมากกว่า Putty


OP ไม่ได้ใช้ Windows 7
Tanner Faulkner

ขอบคุณ r.tanner.f - ไม่ได้ระบุระบบปฏิบัติการนี่ช่วยฉันได้หวังว่าจะช่วยเหลือคนอื่น ๆ
Artistan

ไม่ทราบว่าทำไมคุณถึงถูกลงคะแนนดูเหมือนว่าจะช่วยคนอื่นได้
มาร์

0

นี่เป็นอีกสาเหตุที่เป็นไปได้สำหรับข้อผิดพลาด:

[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

ชื่อผู้ใช้สามารถระบุได้ในไฟล์กำหนดค่าดังนี้:

config.ssh.username = "badusername"

หากชื่อผู้ใช้นั้นไม่มีอยู่หรือไม่สามารถเข้าสู่ระบบได้ด้วยเหตุผลบางประการทั้งคุณและ Vagrant จะไม่สามารถ SSH เข้าสู่ VM ดังนั้น Vagrant จะ "ไม่สามารถเชื่อมต่อ" แม้ว่า VM จะทำงานและทำงานอย่างถูกต้อง


0

ปัญหาของฉันคือvagrant sshจะไม่ทำอะไรเลย

ฉันลบออกแล้ว~/.ssh/configและปัญหาได้รับการแก้ไข คัดลอกไฟล์ที่อื่นหรือเปลี่ยนชื่อหากคุณต้องการเก็บไว้


บนระบบโลคัลหรือรีโมต?
Jeremy Hajek

0

เช่นเดียวกับคนอื่น ๆ ฉันใช้ GUI (ฉันมีสิ่งนี้ตลอดเวลาเพื่อป้องกันปัญหาเช่นนี้)

config.vm.boot_mode = :gui

จากนั้นฉันใช้เมนู VirtualBox เนื่องจากคำสั่งที่นี่ไม่ทำงาน เครื่อง> รีเซ็ตในเมนูจากนั้นเป็นไปได้ ssh


0

ฉันปิดการทำงาน vm และสร้าง basebox ใหม่:

  1. ปิด VM ฉันกำลังพยายามส่งออก
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.