Vagrant komutları tam olarak ne yapıyor?


96

Vagrant komutlarının ne yaptığına dair şaşırtıcı bir şekilde, "başlangıç" öğreticisi boyunca referanslar dışında hiçbir belge yoktur.

Şimdiye kadar ne çalıştım:

  • box- " kutuları " yönetin
  • destroy - sanal makineyi kapattıktan sonra saklanan görüntüsünü silinsin mi?
  • gem
  • halt - sanal makineyi kapatın
  • init - yeni bir Vagrantfile ile bir dizin hazırlayın
  • package- sanal makineyi kapattıktan sonra onu bir kutuya dönüştürülebilecek bir 'pakete' dönüştürür mü? (Ya da başka birşey)
  • provision - yalnızca temel hazırlık (ör. Aşçı, Kukla ...) aşamasını çalıştırın
  • reload - VM yapılandırmasını değiştirin (örneğin, Vagrantfile'ı yeniden uygulayın), sanal makineyi yeniden başlatın, yeniden hazırlık yapın
  • resume - askıya alma (ör. önleme)
  • ssh - sanal makineye bir SSH kabuğu bağlantısı açın
  • ssh-config
  • status
  • suspend - sanal makineyi hazırda bekletme
  • up - bazıları veya tümü: yeni bir VM oluşturmak için bir VM görüntüsünü kopyalayın, ona yapılandırma uygulayın, önyükleyin

Bunlara sahip miyim? Diğerleri neler? Hala reloadve destroy/ arasındaki tam fark konusunda biraz belirsizim up.


Mevcut belgeler artık çok daha iyi - vagrantup.com/v1/docs/index.html
JavaRocky

2
@JavaRocky, bana öyle görünmüyor. vagrantup.com/v1/docs/commands.html kelimenin tam anlamıyla alt komut başına bilgi içermiyor. Bunun gibi bir kılavuzdaki her komut hakkında daha fazla bilgi beklerdim (ile karşılaştırıldığında -h), daha az değil.
Matthew Flaschen

2
@JavaRocky - Daha iyiyse, daha önce nasıl olduklarını hayal edemiyorum. Hiç yararlı değil.
DougW

İlginç, komutların listesini kaldırmış gibi görünüyorlar, bu da web sitesini eskisinden daha az bilgilendirici yapıyor.
Steve Bennett

Mevcut dokümanlardan, "devam ettirme" nin "serseri yukarı" ile gereksiz olduğu görülüyor; örneğin, ikincisi, askıya alınırsa bir makineyi devam ettirecek ve durdurulursa yeniden sağlanacaktır. Bu doğru mu? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Yanıtlar:


48

Vagrantup'taki belgelerin daha kısa olduğu konusunda sana katılıyorum .

Bazı bilgiler komuta yardım sisteminden toplanabilir.

  1. Örneğin: gemkomut.

    Komutu bağımsız değişkenler olmadan vagrant gem -hyazmanız yeterlidir: ihtiyaç duyabileceğiniz bilgileri üretir.

    vagrant gemRubyGems sistemi aracılığıyla Vagrant eklentilerini kurmak için kullanılır. Aslında, vagrant gemgerçek gem arayüzün sadece bir ön yüzüdür, aradaki fark, Vagrant'ın mücevherlerin kurulu olduğu özel bir dizin oluşturması ve böylece sistem mücevherlerinizden izole edilmiş olmalarıdır.

  2. Vagrant ssh-config:

    Kaputun altında, vagrant sshVM'ye ssh'ı çalıştırdığınızda . İyi bilinen ssh anahtarını kullanıyor. Bu anahtarla ilgili bilgiler tarafından sağlanmaktadır vagrant ssh-config. Bu, iyi bilinen anahtarı kendi özel anahtarınızla değiştirmek ve bunu kullanmak için kutular hazırlamak istemeniz durumunda kullanışlıdır.

    Ayrıca bazen, sanal makinelerinizle ssh tabanlı otomasyonu kullanmak isteyebilirsiniz. Bu durumda hangi anahtarın kullanıldığını bilmek faydalıdır. Normal ssh komutunu kullanabilirsiniz -ssh -i keyfile ..

  3. vagrant status <vmname>

    Bu komut, vm'nin durumu hakkında bilgi sağlayan bir sarmalayıcıdır. Çalışıyor, kaydediliyor ve kapatılıyor olabilir.

  4. vagrant reload

    Vagrantfile'daki yapılandırmada etkili olması gereken herhangi bir değişiklik yaparsanız. Sanal makineyi yeniden yüklemek isteyebilirsiniz. Siz de istemediğiniz sürece vagrantfile'da tanımlanan provizyonu yeniden çalıştırır.

    Bir temel kutudan oluşturduğunuz sanal makineyi yok etmez. Bu, sanal makinenizde yaptığınız tüm değişikliklerin, örneğin kullanıcı dizininizde bir klasör oluşturmanın yeniden yüklemeden sonra orada olacağı anlamına gelir.

    Sanal makinenizi kapattığı ve ardından yalnızca VM kapatıldığında uygulanabilecek belirli yapılandırma değişikliklerini uyguladığı yerde yeniden başlatma gibidir. ve sonra açın. Örnek: başka bir SATA Sanal Disk eklemek gibi.

  5. vagrant up

    Bu, yapılandırma dosyanızı okur vagrantfileve ardından temel kutudan bir VM oluşturur. Temel Kutu bir Şablon gibidir. Ondan birçok VM oluşturabilirsiniz.

    Benzer şekilde, vagrant destroysanal makinenizi yok eder. Bu durumda, içindeyken yaptığınız tüm değişiklikler kaybolacaktır. Ancak, yeni bir sanal makine oluşturduğunuzda önceden tanımlanmış temel bir durumdan başlayabileceğiniz harika fikir budur.

Kullanmayı gerçekten seviyorum ve bunun hakkında blog yazdım .

Özetle, VirtualBox API'leri ve Komutları üzerinde iyi bir sarmalayıcıdır . Bazı yetenekleri daha iyi anlamak için VirtualBox komutlarına göz atabilirsiniz .


1
Tüm bu çıktıları hangi serseri versiyonundan alıyorsunuz? 1.0.5 kullanıyorum ve bu türden hiçbir şey alamıyorum. vagrant gem -hgösterdiğiniz çıktıyı verir, ancak diğerleri hiçbir işe yaramaz.
DougW

2
Vagrant 1.2 geriye gitmiş görünüyor. örneğin, vagrant init -hsadece şunu verir: Kullanım: vagrant init [kutu-adı] [kutu-url] -h, --help Bu yardımı yazdır
Steve Bennett

34

Ne zaman değiştiğinden emin değilim, ancak mevcut sürümde (1.6.3) uygun bir komut listesi var ve çalıştırmak vagrant list-commandsdaha da eksiksiz bir liste veriyor:

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

Kendi vagrantbaşına çalışırken listenin tamamında kalan tek komut docker ve rsync komutlarıdır . Benim sistemimde, neyse.

Bu, şimdi kesin cevap gibi görünüyor.


8

V1.1 için mevcut dokümanlar daha iyi görünse de, v1'den çok daha az eksiksiz olması gerçekten çok kötü. 'Az çoktur' ifadesi sadece dokümantasyon alanında işe yaramıyor ...

Vagrantfiles söz konusu olduğunda, en eksiksiz gözden geçirmenin, serseri bir proje başlattıktan sonra, yeni oluşturulmuş bir Vagrantfile'ın yorumlarında olduğunu buldum. Şu anda dokümantasyonda olmayan parametrelerden bahsediyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.