Seth Vargo 5093f3120e Merge docs and www into a single static site
This is a big commit, and I apologize in advance for the future
git-blames all pointing to me. This commit does a few things:

1.  Merges the website/docs and website/www repo into a single website repo
    to be in line with other HashiCorp projects
2.  Updates to use middleman-hashicorp
3.  Converts less to scss to be in line with other projects
4.  Updates page styles to be in line with other projects
5.  Optimizes images
6.  Prepare for S3 + Fastly deployment with scripts, etc.
7.  Removes blog posts (they have been transferred to hashicorp.com with
    redirects in place
8.  Updated sitemap generation script for better SEO
9.  Fixed many broken links
10. Add description to all fields
2016-01-19 14:35:05 -05:00

52 lines
1.9 KiB
Markdown

---
layout: "docs"
page_title: "File Uploads - Provisioning"
sidebar_current: "provisioning-file"
description: |-
The Vagrant file provisioner allows you to upload a file or directory from the
host machine to the guest machine.
---
# File Provisioner
**Provisioner name: `"file"`**
The Vagrant file provisioner allows you to upload a file or directory from the
host machine to the guest machine.
File provisioning is a simple way to, for example, replicate your local
~/.gitconfig to the vagrant user's home directory on the guest machine so
you will not have to run `git config --global` every time you provision a
new VM.
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
end
Note that, unlike with synced folders, files or directories that are uploaded
will not be kept in sync. Continuing with the example above, if you make
further changes to your local ~/.gitconfig, they will not be immediately
reflected in the copy you uploaded to the guest machine.
The file uploads by the file provisioner are done as the
_SSH or PowerShell user_. This is important since these users generally
do not have elevated privileges on their own. If you want to upload files to
locations that require elevated privileges, we recommend uploading them
to temporary locations and then using the
[shell provisioner](/docs/provisioning/shell.html)
to move them into place.
## Options
The file provisioner takes only two options, both of which are required:
* `source` (string) - Is the local path of the file or directory to be
uploaded.
* `destination` (string) - Is the remote path on the guest machine where
the source will be uploaded to. The file/folder is uploaded as the SSH user
over SCP, so this location must be writable to that user. The SSH user can be
determined by running `vagrant ssh-config`, and defaults to "vagrant".