<commit_before>---
page_title: "Salt - Provisioning"
sidebar_current: "provisioning-salt"
---
# Salt Provisioner

**Provisioner name: `salt`**

The salt Provisioner allows you to provision the guest using 
[Salt](http://saltstack.com/) states.

Salt states are  [YAML](http://en.wikipedia.org/wiki/YAML) documents 
that describes the current state a machine should be in, e.g. what
packages should be installed, which services are running, and the
contents of arbitrary files.

## Masterless Quickstart

What follows is a basic Vagrantfile that will get salt working
on a single minion, without a master:


```ruby
  Vagrant.configure("2") do |config|
    ## Choose your base box
    config.vm.box = "precise64"

    ## For masterless, mount your salt file root
    config.vm.synced_folder "salt/roots/", "/srv/salt/"

    ## Use all the defaults:
    config.vm.provision :salt do |salt|

      salt.minion_config = "salt/minion"
      salt.run_highstate = true

    end
  end
```

This sets up a shared folder for the salt root, and copies
the minion file over, then runs `state.highstate` on the
machine. Your minion file must contain the line
`file_client: local`  in order to work in a 
masterless setup.

## Install Options


* `install_master`  (boolean) - Should vagrant install the salt-master 
on this machine

* `no_minion`  (boolean) - Don't install the minion, default `false`

* `install_syndic`   (boolean) - Install the salt-syndic, default 
`false`

* `install_type`  (stable | git | daily) - Whether to install from a 
distribution's stable package manager, a daily ppa, or git treeish.
<commit_msg>Add CentOS 'testing' argument for install_type<commit_after>---
page_title: "Salt - Provisioning"
sidebar_current: "provisioning-salt"
---
# Salt Provisioner

**Provisioner name: `salt`**

The salt Provisioner allows you to provision the guest using 
[Salt](http://saltstack.com/) states.

Salt states are  [YAML](http://en.wikipedia.org/wiki/YAML) documents 
that describes the current state a machine should be in, e.g. what
packages should be installed, which services are running, and the
contents of arbitrary files.

## Masterless Quickstart

What follows is a basic Vagrantfile that will get salt working
on a single minion, without a master:


```ruby
  Vagrant.configure("2") do |config|
    ## Choose your base box
    config.vm.box = "precise64"

    ## For masterless, mount your salt file root
    config.vm.synced_folder "salt/roots/", "/srv/salt/"

    ## Use all the defaults:
    config.vm.provision :salt do |salt|

      salt.minion_config = "salt/minion"
      salt.run_highstate = true

    end
  end
```

This sets up a shared folder for the salt root, and copies
the minion file over, then runs `state.highstate` on the
machine. Your minion file must contain the line
`file_client: local`  in order to work in a 
masterless setup.

## Install Options


* `install_master`  (boolean) - Should vagrant install the salt-master 
on this machine

* `no_minion`  (boolean) - Don't install the minion, default `false`

* `install_syndic`   (boolean) - Install the salt-syndic, default 
`false`

* `install_type`  (stable | git | daily | testing) - Whether to install from a 
distribution's stable package manager, git tree-ish, daily ppa, or testing repository.

{'fraction_non_alphanumeric': 0.09684274438372799, 'fraction_numerical': 0.0018214936247723133, 'mean_word_length': 3.8172514619883042, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3307201', 'n_tokens_mistral': 1056, 'n_tokens_neox': 1001, 'n_words': 393}