Puppet Class: vagrant::install

Defined in:
manifests/install.pp

Overview

Class: vagrant::install

Install Vagrant

Authors

Ryan Skoblenick <ryan@skoblenick.com>

Copyright 2013 Ryan Skoblenick.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'manifests/install.pp', line 13

class vagrant::install {
  $version = $vagrant::version
  $base_url = "http://dl.bintray.com/mitchellh/vagrant"

  $arch = $::architecture ? {
    /(x86_64|amd64)/ => 'x86_64',
    'i386'           => 'i686',
    default          => fail("Unrecognized architecture: ${::architecture}")
  }

  case $::osfamily {
    'Darwin': {
      $source   = "${base_url}/Vagrant-${version}.dmg"
      $provider = 'pkgdmg'
    }
    'Debian': {
      $source   = "${base_url}/vagrant_${version}_${arch}.deb"
      $provider = 'deb'
    }
    'RedHat': {
      $source   = "${base_url}/vagrant_${version}_${arch}.rpm"
      $provider = 'rpm'
    }
    'Windows': {
      $source   = "${base_url}/Vagrant_${version}.msi"
      $provider = 'msi'
    }
    default: {
      fail("Unsupported Kernel: ${::kernel} operatingsystem: ${::operatingsystem}")
    }
  }

  package {"vagrant-${version}":
    ensure   => installed,
    source   => "${source}",
    provider => "${provider}",
  }
}