$ vagrant box list
precise32 (virtualbox)$ vagrant init precise32
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please readthe comments in the Vagrantfile as well as documentation on
`vagrantup.com`for more information on using Vagrant.
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'precise32'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22=> 2222 (adapter 1)[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Mounting shared folders...
[default] -- /vagrant
# -*- mode: ruby -*-# vi: set ft=ruby :# Vagrantfile API及语法版本VAGRANTFILE_API_VERSION="2"Vagrant.configure(VAGRANTFILE_API_VERSION)do|config|# 使用的boxconfig.vm.box="precise32"# Create a forwarded port mapping which allows access to a specific port# within the machine from a port on the host machine. In the example below,# accessing "localhost:8080" will access port 80 on the guest machine.# config.vm.network :forwarded_port, guest: 80, host: 8080# Create a private network, which allows host-only access to the machine# using a specific IP.# config.vm.network :private_network, ip: "192.168.33.10"# Create a public network, which generally matched to bridged network.# Bridged networks make the machine appear as another physical device on# your network.# config.vm.network :public_network# If true, then any SSH connections made will enable agent forwarding.# Default value: false# config.ssh.forward_agent = true# Share an additional folder to the guest VM. The first argument is# the path on the host to the actual folder. The second argument is# the path on the guest to mount the folder. And the optional third# argument is a set of non-required options.# config.vm.synced_folder "../data", "/vagrant_data"# Provider-specific configuration so you can fine-tune various# backing providers for Vagrant. These expose provider-specific options.# Example for VirtualBox:## config.vm.provider :virtualbox do |vb|# # Don't boot with headless mode# vb.gui = true## # Use VBoxManage to customize the VM. For example to change memory:# vb.customize ["modifyvm", :id, "--memory", "1024"]# end## View the documentation for the provider you're using for more# information on available options.# Enable provisioning with Puppet stand alone. Puppet manifests# are contained in a directory path relative to this Vagrantfile.# You will need to create the manifests directory and a manifest in# the file precise32.pp in the manifests_path directory.## An example Puppet manifest to provision the message of the day:## # group { "puppet":# # ensure => "present",# # }# ## # File { owner => 0, group => 0, mode => 0644 }# ## # file { '/etc/motd':# # content => "Welcome to your Vagrant-built virtual machine!# # Managed by Puppet.\n"# # }## config.vm.provision :puppet do |puppet|# puppet.manifests_path = "manifests"# puppet.manifest_file = "site.pp"# end# Enable provisioning with chef solo, specifying a cookbooks path, roles# path, and data_bags path (all relative to this Vagrantfile), and adding# some recipes and/or roles.## config.vm.provision :chef_solo do |chef|# chef.cookbooks_path = "../my-recipes/cookbooks"# chef.roles_path = "../my-recipes/roles"# chef.data_bags_path = "../my-recipes/data_bags"# chef.add_recipe "mysql"# chef.add_role "web"## # You may also specify custom JSON attributes:# chef.json = { :mysql_password => "foo" }# end# Enable provisioning with chef server, specifying the chef server URL,# and the path to the validation key (relative to this Vagrantfile).## The Opscode Platform uses HTTPS. Substitute your organization for# ORGNAME in the URL and validation key.## If you have your own Chef Server, use the appropriate URL, which may be# HTTP instead of HTTPS depending on your configuration. Also change the# validation key to validation.pem.## config.vm.provision :chef_client do |chef|# chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"# chef.validation_key_path = "ORGNAME-validator.pem"# end## If you're using the Opscode platform, your validator client is# ORGNAME-validator, replacing ORGNAME with your organization name.## If you have your own Chef Server, the default validation client name is# chef-validator, unless you changed the configuration.## chef.validation_client_name = "ORGNAME-validator"end
vagrant@precise32:~$ cd /vagrant/
vagrant@precise32:/vagrant$ ls
Vagrantfile
vagrant@precise32:/vagrant$ touch test.txt
vagrant@precise32:/vagrant$ exitlogoutConnection to 127.0.0.1 closed.
$ ls
Vagrantfile test.txt