ข้อผิดพลาดของเชลล์ที่กำหนดค่าไม่ถูกต้องเมื่อเรียกใช้กล่อง FreeBSD vagrant อย่างเป็นทางการ

ฉันพยายามเรียกใช้กล่อง FreeBSD vagrant อย่างเป็นทางการโดยใช้:

vagrant init freebsd/FreeBSD-10.2-STABLE

และหลังจากนั้น ก็ได้แก้ไข Vagrantfile ของฉันตามคำแนะนำที่ https://forums.freebsd.org/threads/52717/ โดยเพิ่มบรรทัดต่อไปนี้:

Vagrant.configure("2") do |config|
  config.vm.guest = :freebsd
  config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
  config.vm.box = "freebsd/FreeBSD-10.2-STABLE"
  config.ssh.shell = "sh"
  config.vm.base_mac = "080027D14C66"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
    vb.customize ["modifyvm", :id, "--cpus", "1"]
    vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
    vb.customize ["modifyvm", :id, "--audio", "none"]
    vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
    vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
  end
end

เมื่อฉันออกคำสั่ง vagrant up:

vagrant up --provider virtualbox

มีการแสดงข้อผิดพลาดต่อไปนี้:

เชลล์ที่กำหนดค่าไว้ (config.ssh.shell) ไม่ถูกต้องและไม่สามารถดำเนินการคำสั่งได้อย่างถูกต้อง สาเหตุที่พบบ่อยที่สุดสำหรับปัญหานี้คือการใช้เชลล์ที่ไม่มีอยู่บนระบบ โปรดตรวจสอบว่าคุณกำลังใช้เส้นทางแบบเต็มไปยังเชลล์ และเชลล์นั้นสามารถเรียกใช้งานได้โดยผู้ใช้ SSH

ไม่ว่าจะเกิดข้อผิดพลาดอะไร ฉันยังสามารถ vagrant ssh เข้าไปในกล่องได้ อย่างไรก็ตาม ฉันไม่สามารถปิดเครื่องโดยใช้ vagrant halt ได้อย่างสวยงาม มันจะแสดงข้อผิดพลาดเดียวกันกับข้างต้นและไม่ได้ปิดเครื่องเลย


person Osh Mansor    schedule 26.02.2016    source แหล่งที่มา


คำตอบ (1)


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

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
    config.vm.guest = :freebsd
    config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
    config.vm.box = "freebsd/FreeBSD-10.2-STABLE"
    config.ssh.shell = "sh"
    config.vm.base_mac = "080027D14C66"

    config.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--memory", "1024"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
      vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
      vb.customize ["modifyvm", :id, "--audio", "none"]
      vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
      vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
    end

    config.vm.network "private_network", ip: "192.168.33.10"
end

สิ่งที่ฉันทำผิดคือการซ้อนบล็อก Vagrant.configure("2") do |config| นี้ไว้ในบล็อกที่สร้างขึ้นอัตโนมัติ

person Osh Mansor    schedule 27.02.2016