คำสั่ง Vagrant ทำอะไรกันแน่?


96

ไม่มีเอกสารที่น่าแปลกใจเกี่ยวกับสิ่งที่คำสั่ง Vagrant ทำนอกจากการอ้างอิงตลอดบทแนะนำ "เริ่มต้นใช้งาน"

สิ่งที่ฉันได้ทำไปแล้ว:

  • box- จัดการ " กล่อง "
  • destroy - ปิด VM แล้วลบภาพที่เก็บไว้?
  • gem
  • halt - ปิด VM
  • init - จัดเตรียมไดเรกทอรีด้วย Vagrantfile ใหม่
  • package- ปิด VM แล้วแปลงเป็น 'แพ็กเกจ' ซึ่งสามารถเปลี่ยนเป็นกล่องได้? (หรือบางสิ่งบางอย่าง)
  • provision - เรียกใช้เพียงขั้นตอนการจัดเตรียม (เช่นเชฟหุ่นกระบอก ... )
  • reload - แก้ไขการกำหนดค่า VM (เช่นสมัคร Vagrantfile อีกครั้ง) รีบูต VM, reprovision
  • resume - ยกเลิกการระงับ (เช่น unhibernate)
  • ssh - เปิดการเชื่อมต่อเชลล์ SSH กับ VM
  • ssh-config
  • status
  • suspend - จำศีล VM
  • up - บางส่วนหรือทั้งหมด: คัดลอกอิมเมจ VM เพื่อสร้าง VM ใหม่ใช้การกำหนดค่ากับมันบูต

ฉันมีสิทธิ์เหล่านี้หรือไม่? คนอื่นเป็นอย่างไร ฉันยังคงบิตไม่มีความชัดเจนเกี่ยวกับความแตกต่างระหว่างที่แน่นอนreloadและ/destroyup


ตอนนี้เอกสารปัจจุบันดีขึ้นมาก - vagrantup.com/v1/docs/index.html
JavaRocky

2
@JavaRocky ดูเหมือนจะไม่เหมาะกับฉัน vagrantup.com/v1/docs/commands.htmlยังไม่มีข้อมูลต่อคำสั่งย่อยอย่างแท้จริง ผมจะคาดหวังมากขึ้นข้อมูลเกี่ยวกับแต่ละคำสั่งในคู่มือเช่นนี้ (เมื่อเทียบกับ-h) ไม่น้อย
Matthew Flaschen

2
@JavaRocky - ถ้าดีกว่านี้ฉันนึกไม่ออกว่าเมื่อก่อนเป็นยังไง ไม่มีประโยชน์เลย.
DougW

ที่น่าสนใจดูเหมือนว่าพวกเขาได้ลบรายการคำสั่งออกไปแล้วทำให้เว็บไซต์มีข้อมูลน้อยลงกว่าเดิม
Steve Bennett

จากเอกสารปัจจุบันดูเหมือนว่า "resume" ซ้ำซ้อนกับ "vagrant up" เช่นเอกสารหลังจะกลับมาใช้งานเครื่องต่อหากถูกระงับและจัดเตรียมใหม่หากหยุดทำงาน ว่าแม่นมั้ย? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

คำตอบ:


48

ฉันเห็นด้วยกับคุณว่าเอกสารของvagrantupนั้นสั้นกว่า

ข้อมูลบางอย่างสามารถรวบรวมได้จากระบบช่วยเหลือคำสั่ง

  1. ตัวอย่างเช่นgemคำสั่ง

    เพียงพิมพ์คำสั่งโดยไม่มีอาร์กิวเมนต์: vagrant gem -hและจะสร้างข้อมูลที่คุณอาจต้องการ

    vagrant gemใช้เพื่อติดตั้งปลั๊กอิน Vagrant ผ่านระบบ RubyGems ในความเป็นจริงvagrant gemเป็นเพียงส่วนหน้าของgem อินเทอร์เฟซจริงโดยความแตกต่างคือ Vagrant ตั้งค่าไดเร็กทอรีแบบกำหนดเองที่ติดตั้งอัญมณีเพื่อแยกออกจากอัญมณีในระบบของคุณ

  2. Vagrant ssh-config:

    ภายใต้ประทุนเมื่อคุณดำเนินการvagrant sshกับ ssh ใน VM มันกำลังใช้คีย์ ssh ที่รู้จักกันดี ข้อมูลเกี่ยวกับคีย์นี้จัดทำโดยvagrant ssh-configข้อมูลเกี่ยวกับคีย์นี้ให้บริการโดยสิ่งนี้มีประโยชน์ในกรณีที่คุณต้องการเปลี่ยนคีย์ที่รู้จักกันดีเป็นคีย์ส่วนตัวของคุณเองและเตรียมกล่องที่จะใช้

    บางครั้งคุณอาจต้องการใช้ระบบอัตโนมัติที่ใช้ ssh กับ VM ของคุณ ในกรณีนี้การรู้ว่ากำลังใช้คีย์ใดเป็นประโยชน์ คุณสามารถใช้คำสั่ง ssh ปกติได้ -ssh -i keyfile ..

  3. vagrant status <vmname>

    คำสั่งนี้เป็น wrapper ที่ให้ข้อมูลเกี่ยวกับสถานะของ vm สามารถทำงานบันทึกและปิดเครื่องได้

  4. vagrant reload

    หากคุณทำการเปลี่ยนแปลงใด ๆ กับการกำหนดค่าใน vagrantfile ซึ่งจำเป็นต้องมีผล คุณอาจต้องการโหลด VM ซ้ำ มันรันการจัดเตรียมที่กำหนดไว้ใน vagrantfile อีกครั้งเว้นแต่คุณจะไม่ถามด้วย

    ไม่ทำลาย VM ที่คุณสร้างจากกล่องฐาน นั่นหมายความว่าการเปลี่ยนแปลงทั้งหมดที่คุณทำกับ VM ของคุณเช่นพูดว่าสร้างโฟลเดอร์ในไดเรกทอรีผู้ใช้ของคุณจะอยู่ที่นั่นหลังจากโหลดซ้ำ

    มันเหมือนกับการรีบูตโดยที่มันปิด VM ของคุณจากนั้นใช้การเปลี่ยนแปลงการกำหนดค่าบางอย่างซึ่งสามารถใช้ได้เมื่อปิด VM เท่านั้น จากนั้นเปิดเครื่อง ตัวอย่าง: เช่นการแนบดิสก์เสมือน SATA อื่น

  5. vagrant up

    สิ่งนี้อ่านไฟล์กำหนดค่าของคุณ - vagrantfileจากนั้นสร้าง VM จากกล่องฐาน Base Box เปรียบเสมือนแม่แบบ คุณสามารถสร้าง VM ได้มากมายจากมัน

    ในทำนองเดียวกันvagrant destroyทำลาย VM ของคุณ ในกรณีนี้การเปลี่ยนแปลงทั้งหมดที่คุณทำเมื่ออยู่ภายในนั้นจะสูญหายไป แต่นั่นเป็นแนวคิดที่ยอดเยี่ยมที่คุณสามารถเริ่มจากสถานะพื้นฐานที่กำหนดไว้ล่วงหน้าเมื่อคุณสร้าง VM ใหม่

ฉันชอบใช้มันมากและมีบล็อกเกี่ยวกับเรื่องนี้

โดยสรุปก็เป็นเสื้อคลุมที่ดีกว่า VirtualBox APIs และคำสั่ง คุณสามารถดูคำสั่ง VirtualBoxเพื่อทำความเข้าใจความสามารถบางอย่างได้ดีขึ้น


1
คุณได้รับผลลัพธ์ทั้งหมดจากคนเร่ร่อนรุ่นใด ฉันใช้ 1.0.5 และไม่ได้รับอะไรเลย vagrant gem -hให้ผลลัพธ์ที่คุณแสดง แต่คนอื่น ๆ บอกว่าไม่มีประโยชน์เลย
DougW

2
Vagrant 1.2 ดูเหมือนจะถอยหลังไปแล้ว เช่นvagrant init -hให้สิ่งนี้เท่านั้นการใช้งาน: vagrant init [box-name] [box-url] -h, --help พิมพ์วิธีใช้นี้
Steve Bennett

34

ฉันไม่แน่ใจว่ามีการเปลี่ยนแปลงเมื่อใด แต่เวอร์ชันปัจจุบัน (1.6.3) มีรายการคำสั่งที่เหมาะสมและการเรียกใช้vagrant list-commandsจะให้รายการที่สมบูรณ์ยิ่งขึ้น:

box             manages boxes: installation, removal, etc.
connect         connect to a remotely shared Vagrant environment
destroy         stops and deletes all traces of the vagrant machine
docker-logs     outputs the logs from the Docker container
docker-run      run a one-off command in the context of a container
global-status   outputs status Vagrant environments for this user
halt            stops the vagrant machine
help            shows the help for a subcommand
init            initializes a new Vagrant environment by creating a Vagrantfile
list-commands   outputs all available Vagrant subcommands, even non-primary ones
login           log in to Vagrant Cloud
package         packages a running vagrant environment into a box
plugin          manages plugins: install, uninstall, update, etc.
provision       provisions the vagrant machine
rdp             connects to machine via RDP
reload          restarts vagrant machine, loads new Vagrantfile configuration
resume          resume a suspended vagrant machine
rsync           syncs rsync synced folders to remote machine
rsync-auto      syncs rsync synced folders automatically when files change
share           share your Vagrant environment with anyone in the world
ssh             connects to machine via SSH
ssh-config      outputs OpenSSH valid configuration to connect to the machine
status          outputs status of the vagrant machine
suspend         suspends the machine
up              starts and provisions the vagrant environment
version         prints current and latest Vagrant version

คำสั่งเดียวที่เหลือจากรายการทั้งหมดเมื่อเรียกใช้ vagrantด้วยตัวเองคือตัวเทียบท่าและ rsync ในระบบของฉันอย่างไรก็ตาม

ตอนนี้ดูเหมือนจะเป็นคำตอบที่ชัดเจนแล้ว


8

มันแย่มากที่แม้ว่าเอกสารปัจจุบันสำหรับ v1.1 จะดูดีกว่า แต่ก็มีความสมบูรณ์น้อยกว่า v1 มาก ความเชื่อ 'less is more' ไม่สามารถใช้งานได้ในพื้นที่ของเอกสาร ...

ฉันพบว่าเมื่อพูดถึง Vagrantfiles ภาพรวมที่สมบูรณ์ที่สุดอยู่ในความคิดเห็นของ Vagrantfile ที่สร้างขึ้นใหม่หลังจากเริ่มต้นโครงการคนจรจัด กล่าวถึงพารามิเตอร์ที่ไม่ได้อยู่ในเอกสารประกอบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.