Apa sebenarnya yang dilakukan perintah Vagrant?

96

Tidak ada dokumentasi yang mengejutkan tentang apa yang dilakukan perintah Vagrant, selain referensi di seluruh tutorial "memulai".

Apa yang telah saya lakukan sejauh ini:

  • box- kelola " kotak "
  • destroy - matikan VM lalu hapus gambar yang disimpan?
  • gem
  • halt - matikan VM
  • init - siapkan direktori dengan Vagrantfile baru
  • package- matikan VM, lalu konversikan ke 'paket' yang bisa diubah menjadi kotak? (Atau sesuatu)
  • provision - jalankan hanya tahap penyediaan (mis., Koki, Boneka ...)
  • reload - modifikasi konfigurasi VM (misalnya, ajukan kembali Vagrantfile), boot ulang VM, perbaiki
  • resume - un-suspend (mis., unhibernate)
  • ssh - buka koneksi shell SSH ke VM
  • ssh-config
  • status
  • suspend - hibernasi VM
  • up - beberapa atau semua: salin gambar VM untuk membuat VM baru, terapkan konfigurasi padanya, boot

Apakah saya memiliki hak ini? Apa yang lainnya? Saya masih kurang jelas tentang perbedaan sebenarnya antara reloaddan destroy/ up.

Steve Bennett
sumber
Dokumentasi saat ini jauh lebih baik sekarang - vagrantup.com/v1/docs/index.html
JavaRocky
2
@JavaRocky, bagi saya sepertinya tidak seperti itu. vagrantup.com/v1/docs/commands.html secara harfiah masih tidak memiliki informasi per subperintah. Saya mengharapkan lebih banyak informasi tentang setiap perintah dalam panduan seperti ini (dibandingkan dengan -h), tidak kurang.
Matthew Flaschen
2
@JavaRocky - Jika itu lebih baik, saya tidak bisa membayangkan seperti apa mereka sebelumnya. Tidak berguna sama sekali.
DougW
Menariknya, sepertinya mereka benar-benar telah menghapus daftar perintah, membuat situs web tersebut menjadi kurang informatif dari sebelumnya.
Steve Bennett
Dari dokumen saat ini, sepertinya "resume" adalah mubazir dengan "gelandangan", misalnya yang terakhir akan melanjutkan mesin jika ditangguhkan, dan penyediaan ulang jika dihentikan. Apakah itu akurat? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Jawaban:

48

Saya setuju dengan Anda bahwa dokumentasi di vagrantup lebih pendek.

Beberapa informasi dapat diperoleh dari sistem bantuan perintah.

  1. Misalnya: gemperintah.

    Cukup ketikkan perintah tanpa argumen: vagrant gem -hdan ini menghasilkan informasi yang mungkin Anda butuhkan.

    vagrant gemdigunakan untuk menginstal plugin Vagrant melalui sistem RubyGems. Bahkan, vagrant gemhanya frontend untuk sebenarnya gem antarmuka, dengan perbedaan makhluk yang Vagrant membuat sebuah direktori kustom mana permata dipasang sehingga mereka terisolasi dari permata sistem anda.

  2. Vagrant ssh-config:

    Di bawah tenda, ketika Anda mengeksekusi vagrant sshssh ke VM. Itu menggunakan kunci ssh terkenal itu. Informasi tentang kunci ini disediakan oleh vagrant ssh-config. Ini berguna jika Anda ingin mengubah kunci yang diketahui dengan baik ke kunci pribadi Anda sendiri dan menyiapkan kotak untuk menggunakannya.

    Terkadang, Anda mungkin ingin menggunakan otomatisasi berbasis ssh dengan VM Anda. Dalam hal ini, mengetahui kunci mana yang digunakan akan berguna. Anda bisa menggunakan perintah ssh normal -ssh -i keyfile ..

  3. vagrant status <vmname>

    Perintah ini adalah pembungkus yang memberikan informasi tentang status vm. Itu bisa berjalan, disimpan dan dimatikan.

  4. vagrant reload

    Jika Anda membuat perubahan apa pun pada konfigurasi di vagrantfile yang perlu diterapkan. Anda mungkin ingin memuat ulang VM. Ini menjalankan kembali penyediaan yang ditentukan dalam vagrantfile kecuali jika Anda tidak memintanya juga.

    Itu tidak merusak VM yang telah Anda buat dari kotak dasar. Itu berarti semua perubahan yang Anda buat pada VM Anda, seperti misalnya membuat folder di direktori pengguna Anda akan ada di sana setelah memuat ulang.

    Ini seperti reboot di mana ia mematikan VM Anda dan kemudian menerapkan perubahan konfigurasi tertentu yang hanya dapat diterapkan ketika VM dimatikan. lalu nyalakan. Contoh: seperti memasang Disk Virtual SATA lain.

  5. vagrant up

    Ini membaca file konfigurasi Anda - vagrantfiledan kemudian membuat VM dari kotak dasar. Kotak Dasar seperti Templat. Anda dapat membuat banyak VM darinya.

    Demikian pula, vagrant destroymenghancurkan VM Anda. Dalam hal ini semua perubahan yang Anda buat saat berada di dalamnya akan hilang. Tapi itulah ide yang bagus bahwa Anda dapat memulai dari keadaan dasar yang telah ditentukan sebelumnya saat Anda membuat VM baru.

Saya sangat suka menggunakannya dan telah membuat blog tentangnya .

Singkatnya, ini adalah pembungkus yang baik atas API dan Perintah VirtualBox . Anda dapat melihat perintah VirtualBox untuk memahami beberapa kapabilitas dengan lebih baik.

pyfunc
sumber
1
Gelandangan versi apa Anda mendapatkan semua keluaran ini? Saya menggunakan 1.0.5 dan saya tidak mendapatkan hal semacam itu. vagrant gem -hmemberikan hasil yang Anda tunjukkan, tetapi yang lainnya tidak mengatakan apa pun yang berguna.
DougW
2
Vagrant 1.2 sepertinya sudah mundur. misalnya, vagrant init -hberikan ini: Penggunaan: vagrant init [nama-kotak] [box-url] -h, --help Cetak bantuan ini
Steve Bennett
34

Saya tidak yakin kapan itu berubah, tetapi versi saat ini (1.6.3) memiliki daftar perintah yang tepat, dan menjalankan vagrant list-commandsmemberikan daftar yang lebih lengkap:

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

Satu-satunya perintah yang tertinggal dari daftar lengkap saat berjalan vagrantdengan sendirinya adalah yang bekerja sebagai buruh pelabuhan dan rsync. Di sistem saya.

Sepertinya itu jawaban yang pasti, sekarang.

Steve Bennett
sumber
8

Sangat disayangkan bahwa meskipun dokumen saat ini untuk v1.1 terlihat lebih baik, ini jauh lebih lengkap dari v1. Kredo 'less is more' tidak berfungsi di bidang dokumentasi ...

Saya telah menemukan bahwa ketika datang ke Vagrantfiles, gambaran umum paling lengkap ada di komentar Vagrantfile yang baru dibuat, setelah menginisialisasi proyek gelandangan. Ini menyebutkan parameter yang saat ini tidak ada dalam dokumentasi.

David Spreekmeester
sumber