website/docs: bring in changes from docs.vagrantup.com

This commit is contained in:
Mitchell Hashimoto 2013-09-03 11:59:49 -07:00
parent 4b26766d78
commit 72b6fe6167
4 changed files with 35 additions and 25 deletions

View File

@ -15,7 +15,7 @@ Boxes are [provider-specific](/v2/providers/index.html), so you must obtain
the proper box depending on what provider you're using.
If you're interested in more details on the exact file format of
boxes, there is a seperate [page dedicated to that](/v2/boxes/format.html), since
boxes, there is a separate [page dedicated to that](/v2/boxes/format.html), since
it is an advanced topic that general users don't need to know.
## Adding Boxes

View File

@ -19,7 +19,7 @@ The main functionality of this command is exposed via even more subcommands:
**Command: `vagrant box add NAME URL`**
This adds a box add the given URL to Vagrant and stores it under the
This adds a box at the given URL to Vagrant and stores it under the
logical name `NAME`.
The URL may be a file path or an HTTP URL. For HTTP, basic authentication

View File

@ -36,3 +36,17 @@ end
When DHCP is used, the IP can be determined by using `vagrant ssh` to
SSH into the machine and using the appropriate command line tool to find
the IP, such as `ifconfig`.
## Default Network Interface
If more than one network interface is available on the host machine, Vagrant will
ask you to choose which interface the virtual machine should bridge to. A default
interface can be specified by adding a `:bridge` clause to the network definition.
```ruby
config.vm.network :public_network, :bridge => 'en1: Wi-Fi (AirPort)'
```
The string identifying the desired interface must exactly match the name of an
available interface. If it can't be found, Vagrant will ask you to pick
from a list of available network interfaces.

View File

@ -17,13 +17,18 @@ a single page of documentation.
## Inventory File
Out of the box, Ansible can control with multiple systems in your infrastructure at the
same time. It does this by selecting portions of systems listed in Ansible's inventory
INI formatted file, which defaults to being located at `/etc/ansible/hosts`. This same
file can be used with Vagrant, or the `ansible.inventory_file` option can be specified to
direct Vagrant to use an inventory file dedicated to your Vagrant project. Using this option
is recommended to avoid accidentally running playbooks against live infrastructure. A simple
inventory file for use with Vagrant might look like:
When using Ansible, it needs to know on which machines a given playbook should run. It does
this by way of an inventory file which lists those machines. In the context of Vagrant,
there are two ways to approach working with inventory files. The first and simplest option
is to not provide one to Vagrant at all. Vagrant will generate inventory files for each
virtual machine it manages, and use them for provisioning machines. Generated inventory files
are created adjacent to your Vagrantfile, named using the machine names set in your Vagrantfile.
The second option is for situations where you'd like to have more than one virtual machine
in a single inventory file, perhaps leveraging more complex playbooks or inventory grouping.
If you provide the `ansible.inventory_path` option referencing a specific inventory file
dedicated to your Vagrant project, that one will be used instead of generating them.
Such an inventory file for use with Vagrant might look like:
```
[vagrant]
@ -36,10 +41,6 @@ Where the above IP address is one set in your Vagrantfile:
config.vm.network :private_network, ip: "192.168.111.222"
```
(While Vagrant does have the IP address of your VM, entering it into an Ansible inventory
file is preferred so that Ansible's `group_vars` and `host_vars` can be used; Their location
is derived from the location of the inventory file.)
## Playbook
The second component of a successful Ansible provisioner setup is the Ansible playbook
@ -52,7 +53,7 @@ if it was updated) the NTP daemon via YUM looks like:
```
---
- hosts: vagrant
- hosts: all
tasks:
- name: ensure ntpd is at the latest version
yum: pkg=ntp state=latest
@ -75,34 +76,30 @@ To run Ansible against your Vagrant guest, the basic Vagrantfile configuration l
Vagrant.configure("2") do |config|
config.vm.provision :ansible do |ansible|
ansible.playbook = "playbook.yml"
ansible.inventory_file = "ansible_hosts"
end
end
```
This causes Vagrant to run the `playbook.yml` playbook against the `vagrant` group in the
`ansible_hosts` file, both of which are adjacent to the Vagrantfile. Since an Ansible playbook
can include many files, you may also collect the related files in a directory structure like this:
This causes Vagrant to run the `playbook.yml` playbook against all hosts in the inventory file.
Since an Ansible playbook can include many files, you may also collect the related files in
a directory structure like this:
```
$ tree
.
|-- Vagrantfile
|-- provisioning
| |-- ansible_hosts
| |-- group_vars
| |-- vagrant
| |-- all
| |-- playbook.yml
```
In such an arrangement, the `ansible.playbook` and `ansible.inventory_file` options should be
adjusted accordingly:
In such an arrangement, the `ansible.playbook` path should be adjusted accordingly:
```ruby
Vagrant.configure("2") do |config|
config.vm.provision :ansible do |ansible|
ansible.playbook = "provisioning/playbook.yml"
ansible.inventory_file = "provisioning/ansible_hosts"
end
end
```
@ -125,7 +122,6 @@ These variables take the highest precedence over any other variables.
by the sudo command.
* `ansible.ask_sudo_pass` can be set to `true` to require Ansible to prompt for a sudo password.
* `ansible.limit` can be set to a string or an array of machines or groups from the inventory file
to further narrow down which hosts are affected. This option is best used in the case where you
are using an inventory file containing more than just the Vagrant guest.
to further narrow down which hosts are affected.
* `ansible.verbose` can be set to `true` to increase Ansible's verbosity to obtain more detailed logging
during playbook execution.