<commit_before># vagrant-puppet-install

[![Gem Version](http://img.shields.io/gem/v/vagrant-puppet-install.svg)][gem]
[![Build Status](http://img.shields.io/travis/petems/vagrant-puppet-install.svg)][travis]
[![Dependency Status](http://img.shields.io/gemnasium/petems/vagrant-puppet-install.svg)][gemnasium]
[![Code Climate](http://img.shields.io/codeclimate/github/petems/vagrant-puppet-install.svg)][codeclimate]

[gem]: https://rubygems.org/gems/vagrant-puppet-install
[travis]: http://travis-ci.org/petems/vagrant-puppet-install
[gemnasium]: https://gemnasium.com/petems/vagrant-puppet-install
[codeclimate]: https://codeclimate.com/github/petems/vagrant-puppet-install


A Vagrant plugin that ensures the desired version of Puppet is installed via the
Puppet Labs package repo. This proves very useful when using Vagrant
with provisioner-less baseboxes OR cloud images.

This plugin has been verified to work with the following
[Vagrant providers](http://docs.vagrantup.com/v2/providers/index.html):

* VirtualBox (part of core)
* AWS (ships in [vagrant-aws](https://github.com/mitchellh/vagrant-aws) plugin)
* Rackspace (ships in [vagrant-rackspace](https://github.com/mitchellh/vagrant-rackspace) plugin)
* DigitalOcean (ships in [vagrant-digital_ocean](https://github.com/smdahlen/vagrant-digitalocean) plugin)

It may work with other Vagrant providers but is not guaranteed to!

## Installation

Ensure you have downloaded and installed Vagrant 1.1.x from the
[Vagrant downloads page](http://downloads.vagrantup.com/).

Installation is performed in the prescribed manner for Vagrant 1.1 plugins.

```
$ vagrant plugin install vagrant-puppet-install
```

## Usage

The Puppet Install Vagrant plugin automatically hooks into the Vagrant provisioning
middleware. You specify the version of the `puppet-common` package you want
installed using the `puppet_install.puppet_version` config key. The version string
should be a valid Puppet release (ie. `2.7.11`, `3.7.4`, etc.).

The Puppet version is validated against the RubyGems API, so you can use gem syntax to give a [pessimistic version constraint](http://guides.rubygems.org/patterns/#pessimistic-version-constraint) such as `~> 2.7` which will return the latest version of the 2.7.*.

Install the latest version of Puppet:

```ruby
Vagrant.configure("2") do |config|

  config.puppet_install.puppet_version = :latest

  ...

end
```

Install a specific version of Puppet:

```ruby
Vagrant.configure("2") do |config|

  config.puppet_install.puppet_version = "2.7.11"

  ...

end
```

Specify a custom install script:
<commit_msg>Removes pessimistic reference from docs<commit_after># vagrant-puppet-install

[![Gem Version](http://img.shields.io/gem/v/vagrant-puppet-install.svg)][gem]
[![Build Status](http://img.shields.io/travis/petems/vagrant-puppet-install.svg)][travis]
[![Dependency Status](http://img.shields.io/gemnasium/petems/vagrant-puppet-install.svg)][gemnasium]
[![Code Climate](http://img.shields.io/codeclimate/github/petems/vagrant-puppet-install.svg)][codeclimate]

[gem]: https://rubygems.org/gems/vagrant-puppet-install
[travis]: http://travis-ci.org/petems/vagrant-puppet-install
[gemnasium]: https://gemnasium.com/petems/vagrant-puppet-install
[codeclimate]: https://codeclimate.com/github/petems/vagrant-puppet-install


A Vagrant plugin that ensures the desired version of Puppet is installed via the
Puppet Labs package repo. This proves very useful when using Vagrant
with provisioner-less baseboxes OR cloud images.

This plugin has been verified to work with the following
[Vagrant providers](http://docs.vagrantup.com/v2/providers/index.html):

* VirtualBox (part of core)
* AWS (ships in [vagrant-aws](https://github.com/mitchellh/vagrant-aws) plugin)
* Rackspace (ships in [vagrant-rackspace](https://github.com/mitchellh/vagrant-rackspace) plugin)
* DigitalOcean (ships in [vagrant-digital_ocean](https://github.com/smdahlen/vagrant-digitalocean) plugin)

It may work with other Vagrant providers but is not guaranteed to!

## Installation

Ensure you have downloaded and installed Vagrant 1.1.x from the
[Vagrant downloads page](http://downloads.vagrantup.com/).

Installation is performed in the prescribed manner for Vagrant 1.1 plugins.

```
$ vagrant plugin install vagrant-puppet-install
```

## Usage

The Puppet Install Vagrant plugin automatically hooks into the Vagrant provisioning
middleware. You specify the version of the `puppet-common` package you want
installed using the `puppet_install.puppet_version` config key. The version string
should be a valid Puppet release (ie. `2.7.11`, `3.7.4`, etc.).

The Puppet version is validated against the RubyGems API. So as long as the version you give is [listed there](https://rubygems.org/gems/puppet/versions/), it will allow you to install.

Install the latest version of Puppet:

```ruby
Vagrant.configure("2") do |config|

  config.puppet_install.puppet_version = :latest

  ...

end
```

Install a specific version of Puppet:

```ruby
Vagrant.configure("2") do |config|

  config.puppet_install.puppet_version = "2.7.11"

  ...

end
```

Specify a custom install script:

{'fraction_non_alphanumeric': 0.12295401402961809, 'fraction_numerical': 0.00779423226812159, 'mean_word_length': 5.010538641686183, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 13, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3764279', 'n_tokens_mistral': 1804, 'n_tokens_neox': 1747, 'n_words': 451}