喜大普奔:HashiCorp Vagrant 2.2.0发布!

OCT 17 2018 BRIAN CAIN

We are pleased to announce the release of Vagrant 2.2.0. Vagrant is a tool for building and distributing development environments. The highlight of this release is the introduction of Vagrant Cloud command line tool.

DOWNLOAD NOW

This release of Vagrant includes a handful of bug fixes and improvements. Notable updates in this release include:

  • Vagrant Cloud integration with new cloud command
  • Core Vagrant trigger improvements supporting non-standard exit codes and a new abort option to halt a Vagrant run
  • Vagrant upload command for easily transferring files to guests
  • Many Hyper-V and Docker provider improvements and bug fixes

Vagrant Cloud CLI

This release introduces a brand new Vagrant command, cloud, which can be used to interact with Vagrant Cloudthrough the command line instead of a browser or HTTP. It comes with a variety of cloud subcommands, however this post will only cover a few highlights. If you’d like to know more about this feature, check out the documentation for more information!

vagrant cloud search hashicorp --limit 5
| NAME                    | VERSION | DOWNLOADS | PROVIDERS                       |
+-------------------------+---------+-----------+---------------------------------+
| hashicorp/precise64     | 1.1.0   | 6,689,515 | virtualbox,vmware_fusion,hyperv |
| hashicorp/precise32     | 1.0.0   | 2,264,067 | virtualbox                      |
| hashicorp/boot2docker   | 1.7.8   |    59,376 | vmware_desktop,virtualbox       |
| hashicorp/connect-vm    | 0.1.0   |     6,912 | vmware_desktop,virtualbox       |
| hashicorp/vagrant-share | 0.1.0   |     3,676 | vmware_desktop,virtualbox       |
+-------------------------+---------+-----------+---------------------------------+

If you just want box names and are not interested in a formatted table, you can reduce the result with the --short flag:

vagrant cloud search hashicorp --limit 5 --short
hashicorp/precise64
hashicorp/precise32
hashicorp/boot2docker
hashicorp/connect-vm
hashicorp/vagrant-share

There are lots of ways to use the search command with various filters to find the right box to use. Give it a try today!

Publish

So, you’ve built a new Vagrant box with Packer and want to share it with the world on Vagrant Cloud, but you’re not sure how to go about sharing the box file? The publish subcommand helps you through the process of creating and uploading a new box entry on Vagrant Cloud with a single command. Once invoked, it will confirm the new box details before publishing to Vagrant Cloud.

Note that the Progress bar will get removed after the box has finished uploading to Vagrant Cloud, but was left in for example sake for this blog post.

vagrant cloud publish briancain/supertest 1.0.0 virtualbox boxes/ubuntu-16.04.virtualbox.box --description "Now with more bits!" --version-description "A cool version" --release --short-description "More bits"
You are about to publish a box on Vagrant Cloud with the following options:
briancain/supertest:   (v1.0.0) for provider 'virtualbox'
Automatic Release:     true
Box Description:       Now with more polygons
Box Short Description: Really short
Version Description:   A cool version
Do you wish to continue? [y/N] y
==> cloud: Creating a box entry...
==> cloud: Creating a version entry...
==> cloud: Creating a provider entry...
==> cloud: Uploading provider with file /Users/brian/code/vagrant_cloud/boxes/ubuntu-16.04.virtualbox.box
Progress: 14% (Rate: 6172k/s, Estimated time remaining: 0:01:10)
==> cloud: Releasing box...
Complete! Published briancain/supertest
tag:                  briancain/supertest
username:             briancain
name:                 supertest
private:              false
downloads:            0
created_at:           2018-09-26T21:03:15.737Z
updated_at:           2018-09-26T21:05:07.388Z
short_description:    More bits
description_markdown: Now with more bits!
current_version:      1.0.0
providers:            virtualbox
old_versions:         ...

There are a lot more features that come along with the new cloud command, so check it out today!

Vagrant plugins

Vagrant now gives users the ability to define project specific plugins that are required for a Vagrantfile. Vagrant will require these plugins be installed and available for the project. If the plugins are not available, it will attempt to automatically install them into the local project. When requiring a single plugin, a string can be provided:

config.vagrant.plugins = "vagrant-plugin"

If multiple plugins are required, they can be provided as an array:

config.vagrant.plugins = ["vagrant-plugin", "vagrant-other-plugin"]

Plugins can also be defined as a Hash, which supports setting extra options for the plugins. When a Hash is used, the key is the name of the plugin, and the value is an options Hash for the plugin. For example, to set an explicit version of a plugin to install:

config.vagrant.plugins = {"vagrant-scp" => {"version" => "1.0.0"}}

More information about configuring your Vagrantfile to install local plugins can be found on the documentation for Vagrantfiles!

Vagrant Upload

Vagrant now includes a new upload command. This command allows for easy uploading of one-off files or directories from the host to a running guest. The upload command utilizes the underlying communicator configured for the target guest to provide support for uploading files and directories.

vagrant upload test.rb
Uploading test.rb to test.rb
Upload has completed successfully!

  Source: test.rb
  Destination: test.rb

The upload command also includes support for performing compression on the host prior to upload and automatic decompression on the guest. This can be very useful when uploading large directories as it not only compresses the content to be uploaded but also reduces the number of uploaded items to one. For more information about the new upload command, please refer to the documentation.

Other improvements

The Vagrant 2.2.0 release also includes a number of other improvements and bug fixes. For a detailed list of all the changes in this release, see the CHANGELOG.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从小做什么事情都是三分钟热度,只有一件事情坚持了下来,那就是单着。 很多人说,姑娘,爱情可能会来的晚一些,你要等,...
    申佳琦琦琦琦琦阅读 362评论 0 1
  • 改变别人首先要改变自己,人到中年,困惑太多,为了孩子,为了父母,为了家,必须好好的工作,努力挣钱。
    感悟人生_df20阅读 132评论 0 0
  • 敬畏—进入—体验—交给—持续 1,缺啥补啥,怕啥练啥; 2,一切为我所用,所用为团队家; 3,我想变,我要变,我不...
    京心达宁威阅读 189评论 0 0