Chính xác thì các lệnh Vagrant làm gì?


96

Đáng ngạc nhiên là không có tài liệu nào về các lệnh Vagrant làm, ngoài các tài liệu tham khảo trong suốt hướng dẫn "bắt đầu".

Những gì tôi đã tìm ra cho đến nay:

  • box- quản lý " hộp "
  • destroy - Tắt máy ảo sau đó xóa hình ảnh được lưu trữ của nó?
  • gem
  • halt - tắt máy ảo
  • init - chuẩn bị một thư mục với một Vagrantfile mới
  • package- Tắt máy ảo, sau đó chuyển đổi nó thành 'gói' có thể được chuyển thành hộp? (Hay gì đó)
  • provision - chỉ chạy giai đoạn cung cấp (ví dụ: Chef, Puppet ...)
  • reload - sửa đổi cấu hình VM (ví dụ: áp dụng lại Vagrantfile), khởi động lại VM, sửa đổi lại
  • resume - hủy đình chỉ (tức là hủy chế độ ngủ)
  • ssh - mở một kết nối SSH shell tới VM
  • ssh-config
  • status
  • suspend - ngủ đông máy ảo
  • up - một số hoặc tất cả: sao chép một hình ảnh VM để tạo một máy ảo mới, áp dụng cấu hình cho nó, khởi động nó

Tôi có quyền này không? Những người khác là gì? Tôi vẫn còn một chút không rõ ràng về sự khác biệt chính xác giữa reloaddestroy/ up.


Tài liệu hiện tại đã tốt hơn rất nhiều - vagrantup.com/v1/docs/index.html
JavaRocky

2
@JavaRocky, nó có vẻ không giống với tôi. vagrantup.com/v1/docs/commands.html vẫn không có thông tin cho mỗi lệnh con. Tôi mong đợi nhiều thông tin hơn về mỗi lệnh trong một hướng dẫn như thế này (so với -h), chứ không phải ít hơn.
Matthew Flaschen

2
@JavaRocky - Nếu điều đó tốt hơn, tôi không thể tưởng tượng họ như thế nào trước đây. Không hữu ích chút nào.
DougW

Thật thú vị, có vẻ như họ đã thực sự loại bỏ danh sách các lệnh, khiến trang web thậm chí còn ít thông tin hơn trước.
Steve Bennett

Từ các tài liệu hiện tại, có vẻ như "sơ yếu lý lịch" là dư thừa với "lập hồ sơ", ví dụ: tài liệu sau sẽ tiếp tục hoạt động nếu máy bị treo và cung cấp lại nếu máy bị tạm dừng. Có chính xác không? docs.vagrantup.com/v2/getting-started/teardown.html
cboettig

Câu trả lời:


48

Tôi đồng ý với bạn rằng tài liệu tại vagrantup có phần ngắn hơn.

Một số thông tin có thể được thu thập từ hệ thống trợ giúp lệnh.

  1. Ví dụ: gemlệnh.

    Chỉ cần nhập lệnh mà không có đối số: vagrant gem -hvà nó tạo ra thông tin mà bạn có thể cần.

    vagrant gemđược sử dụng để cài đặt các plugin Vagrant thông qua hệ thống RubyGems. Trên thực tế, vagrant gemnó chỉ là một giao diện người dùng thực tế gem , với sự khác biệt là Vagrant thiết lập một thư mục tùy chỉnh nơi các gem được cài đặt để chúng được tách biệt khỏi các gem hệ thống của bạn.

  2. Vagrant ssh-config:

    Dưới mui xe, khi bạn thực thi vagrant sshssh vào VM. Nó đang sử dụng khóa ssh nổi tiếng của nó. Thông tin về khóa này được cung cấp bởi vagrant ssh-config. Điều này hữu ích trong trường hợp bạn muốn thay đổi khóa biết rõ thành khóa riêng của mình và chuẩn bị các hộp để sử dụng khóa đó.

    Ngoài ra, đôi khi bạn có thể muốn sử dụng tự động hóa dựa trên ssh với máy ảo của mình. Trong trường hợp đó, biết khóa nào đang được sử dụng là hữu ích. Bạn có thể sử dụng lệnh ssh bình thường -ssh -i keyfile ..

  3. vagrant status <vmname>

    Lệnh này là một trình bao bọc cung cấp thông tin về trạng thái của vm. Nó có thể đang chạy, lưu và tắt nguồn.

  4. vagrant reload

    Nếu bạn thực hiện bất kỳ thay đổi nào đối với cấu hình trong vagrantfile cần có hiệu lực. Bạn có thể muốn tải lại máy ảo. Nó chạy lại cấp phép được xác định trong vagrantfile trừ khi bạn cũng không yêu cầu.

    Nó không phá hủy máy ảo bạn đã tạo từ hộp cơ sở. Điều đó có nghĩa là tất cả những thay đổi bạn đã thực hiện đối với máy ảo của mình, chẳng hạn như đã tạo một thư mục trong thư mục người dùng của bạn sẽ ở đó sau khi tải lại.

    Nó giống như khởi động lại trong đó nó tắt máy ảo của bạn và sau đó áp dụng thay đổi cấu hình nhất định chỉ có thể được áp dụng khi máy ảo đã được tắt. và sau đó bật nguồn. Ví dụ: như gắn một Đĩa ảo SATA khác.

  5. vagrant up

    Thao tác này đọc tệp cấu hình của bạn - vagrantfilevà sau đó tạo một máy ảo từ hộp cơ sở. Hộp cơ sở giống như một Mẫu. Bạn có thể tạo nhiều máy ảo từ nó.

    Tương tự, vagrant destroyphá hủy máy ảo của bạn. Trong trường hợp này, tất cả các thay đổi bạn đã thực hiện khi bên trong nó sẽ bị mất. Nhưng đó là ý tưởng tuyệt vời mà bạn có thể bắt đầu từ trạng thái cơ sở được xác định trước khi bạn tạo một máy ảo mới.

Tôi thực sự thích sử dụng nó và đã viết blog về nó .

Tóm lại, nó là một trình bao bọc tốt cho các API và lệnh của VirtualBox . Bạn có thể xem các lệnh VirtualBox để hiểu rõ hơn một số khả năng.


1
Bạn nhận được tất cả đầu ra này từ phiên bản nào của vagrant? Tôi đang sử dụng 1.0.5 và tôi không nhận được gì. vagrant gem -hđưa ra kết quả mà bạn đã hiển thị, nhưng tất cả những thứ khác đều không có ích gì cả.
DougW

2
Vagrant 1.2 dường như đã đi lùi. ví dụ, vagrant init -hchỉ cung cấp cho này: Cách sử dụng: lang thang init [hộp-name] [hộp url] -h, --help In trợ giúp này
Steve Bennett

34

Tôi không chắc khi nào nó thay đổi, nhưng phiên bản hiện tại (1.6.3) có một danh sách các lệnh thích hợp và việc chạy vagrant list-commandscung cấp một danh sách đầy đủ hơn:

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

Các lệnh duy nhất còn lại trong danh sách hoàn chỉnh khi tự chạy vagrantlà các lệnh docker và rsync. Trên hệ thống của tôi, dù sao.

Đó dường như là câu trả lời dứt khoát, bây giờ.


8

Thực sự là quá tệ khi mặc dù các tài liệu hiện tại cho v1.1 trông đẹp hơn nhưng nó lại kém hoàn thiện hơn nhiều so với v1. Cương lĩnh 'ít hơn là nhiều hơn' chỉ không hoạt động trong lĩnh vực tài liệu ...

Tôi nhận thấy rằng khi nói đến Vagrantfiles, cái nhìn tổng quan đầy đủ nhất nằm trong các bình luận của một Vagrantfile mới được tạo, sau khi khởi tạo một dự án vagrant. Nó đề cập đến các tham số hiện không có trong tài liệu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.