Module: Beaker::DSL::InstallUtils::FOSSDefaults

Included in:
FOSSUtils
Defined in:
lib/beaker/dsl/install_utils/foss_defaults.rb

Overview

This module contains default values for FOSS puppet paths and directorys per-platform

Constant Summary collapse

FOSS_DEFAULT_DOWNLOAD_URLS =

Here be the default download URLs

{
  :win_download_url       => "http://downloads.puppetlabs.com/windows",
  :mac_download_url       => "http://downloads.puppetlabs.com/mac",
  :pe_promoted_builds_url => "http://pm.puppetlabs.com",
  :release_apt_repo_url   => "http://apt.puppetlabs.com",
  :release_yum_repo_url   => "http://yum.puppetlabs.com",
  :dev_builds_url         => "http://builds.delivery.puppetlabs.net",
}
FOSS_DEFAULTS =

Here be the pathing and default values for FOSS installs

{
  'freebsd' => {
    'puppetserver-confdir' => '/etc/puppetserver/conf.d',
    'puppetservice'     => 'puppetmaster',
    'puppetpath'        => '/usr/local/etc/puppet/modules',
    'puppetvardir'      => '/var/lib/puppet',
    'puppetbin'         => '/usr/bin/puppet',
    'puppetbindir'      => '/usr/bin',
    'hieralibdir'       => '/opt/puppet-git-repos/hiera/lib',
    'hierapuppetlibdir' => '/opt/puppet-git-repos/hiera-puppet/lib',
    'hierabindir'       => '/opt/puppet-git-repos/hiera/bin',
    'hieradatadir'      => '/usr/local/etc/puppet/modules/hieradata',
    'hieraconf'         => '/usr/local/etc/puppet/modules/hiera.yaml',
    'distmoduledir'     => '/usr/local/etc/puppet/modules',
    'sitemoduledir'     => '/usr/share/puppet/modules',
  },
  'openbsd' => {
    'puppetserver-confdir' => '/etc/puppetserver/conf.d',
    'puppetservice'     => 'puppetmaster',
    'puppetpath'        => '/etc/puppet/modules',
    'puppetvardir'      => '/var/puppet',
    'puppetbin'         => '/usr/local/bin/puppet',
    'puppetbindir'      => '/usr/local/bin',
    'hieralibdir'       => '/opt/puppet-git-repos/hiera/lib',
    'hierapuppetlibdir' => '/opt/puppet-git-repos/hiera-puppet/lib',
    'hierabindir'       => '/opt/puppet-git-repos/hiera/bin',
    'hieradatadir'      => '/etc/puppet/hieradata',
    'hieraconf'         => '/etc/puppet/hiera.yaml',
    'distmoduledir'     => '/etc/puppet/modules',
    'sitemoduledir'     => '/usr/local/share/puppet/modules',
  },
  'mac' => {
    'puppetserver-confdir' => '/etc/puppetserver/conf.d',
    'puppetservice'     => 'puppetmaster',
    'puppetpath'        => '/etc/puppet',
    'puppetconfdir'     => '/etc/puppet',
    'puppetcodedir'     => '/etc/puppet',
    'puppetvardir'      => '/var/lib/puppet',
    'puppetbin'         => '/usr/bin/puppet',
    'puppetbindir'      => '/usr/bin',
    'hieralibdir'       => '/opt/puppet-git-repos/hiera/lib',
    'hierapuppetlibdir' => '/opt/puppet-git-repos/hiera-puppet/lib',
    'hierabindir'       => '/opt/puppet-git-repos/hiera/bin',
    'hieradatadir'      => '/etc/puppet/hieradata',
    'hieraconf'         => '/etc/puppet/hiera.yaml',
    'distmoduledir'     => '/etc/puppet/modules',
    'sitemoduledir'     => '/usr/share/puppet/modules',
  },
  'unix' => {
    'puppetserver-confdir' => '/etc/puppetserver/conf.d',
    'puppetservice'     => 'puppetmaster',
    'puppetpath'        => '/etc/puppet',
    'puppetconfdir'     => '/etc/puppet',
    'puppetvardir'      => '/var/lib/puppet',
    'puppetbin'         => '/usr/bin/puppet',
    'puppetbindir'      => '/usr/bin',
    'privatebindir'     => '/usr/bin',
    'hieralibdir'       => '/opt/puppet-git-repos/hiera/lib',
    'hierapuppetlibdir' => '/opt/puppet-git-repos/hiera-puppet/lib',
    'hierabindir'       => '/opt/puppet-git-repos/hiera/bin',
    'hieradatadir'      => '/etc/puppet/hieradata',
    'hieraconf'         => '/etc/puppet/hiera.yaml',
    'distmoduledir'     => '/etc/puppet/modules',
    'sitemoduledir'     => '/usr/share/puppet/modules',
  },
  'windows' => { #cygwin windows
    'puppetpath'        => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
    'puppetconfdir'     => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
    'puppetcodedir'     => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
    'hieraconf'         => '`cygpath -smF 35`/Puppetlabs/puppet/etc/hiera.yaml',
    'puppetvardir'      => '`cygpath -smF 35`/PuppetLabs/puppet/var',
    'distmoduledir'     => '`cygpath -smF 35`/PuppetLabs/puppet/etc/modules',
    'sitemoduledir'     => 'C:/usr/share/puppet/modules',
    'hieralibdir'       => '`cygpath -w /opt/puppet-git-repos/hiera/lib`',
    'hierapuppetlibdir' => '`cygpath -w /opt/puppet-git-repos/hiera-puppet/lib`',
    #let's just add both potential bin dirs to the path
    'puppetbindir'      => '/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/bin',
    'privatebindir'     => '/usr/bin',
    'hierabindir'       => '/opt/puppet-git-repos/hiera/bin',
  },
  'pswindows' => { #windows windows
    'distmoduledir'     => 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules',
    'sitemoduledir'     => 'C:\\usr\\share\\puppet\\modules',
    'hieralibdir'       => 'C:\\opt\\puppet-git-repos\\hiera\\lib',
    'hierapuppetlibdir' => 'C:\\opt\\puppet-git-repos\\hiera-puppet\\lib',
    'hierabindir'       => 'C:\\opt\\puppet-git-repos\\hiera\\bin',
    'puppetpath'        => '"C:\\Program Files (x86)\\Puppet Labs\\Puppet\\etc";"C:\\Program Files\\Puppet Labs\\Puppet\\etc"',
    'hieraconf'         => '"C:\\Program Files (x86)\\Puppet Labs\\Puppet\\etc\\hiera.yaml";"C:\\Program Files\\Puppet Labs\\Puppet\\etc\\hiera.yaml"',
    'puppetvardir'      => '"C:\\Program Files (x86)\\Puppet Labs\\Puppet\\var";"C:\\Program Files\\Puppet Labs\\Puppet\\var"',
    'puppetbindir'      => '"C:\\Program Files (x86)\\Puppet Labs\\Puppet\\bin";"C:\\Program Files\\Puppet Labs\\Puppet\\bin"',
  },
}

Instance Method Summary collapse

Instance Method Details

#add_foss_defaults_on(hosts) ⇒ Object

Add the appropriate foss defaults to an array of hosts

Parameters:

  • hosts (Host, Array<Host>, String, Symbol)

    One or more hosts to act upon, or a role (String or Symbol) that identifies one or more hosts.



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/beaker/dsl/install_utils/foss_defaults.rb', line 134

def add_foss_defaults_on(hosts)
  block_on hosts do | host |
    case host.class.to_s.downcase
    when /aix|unix/
      platform = 'unix'
    when /freebsd/
      platform = 'freebsd'
    when /openbsd/
      platform = 'openbsd'
    when /mac/
      platform = 'mac'
    when /pswindows/
      platform = 'pswindows'
    else
      platform = 'windows'
    end
    add_platform_foss_defaults(host, platform)
  end
end

#add_platform_foss_defaults(host, platform) ⇒ Object

Add the appropriate foss defaults to the host object so that they can be accessed using host, set host = foss

Parameters:

  • host (Host)

    A single host to act upon

  • platform (String)

    The platform type of this host, one of windows, pswindows, freebsd, mac & unix



118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/beaker/dsl/install_utils/foss_defaults.rb', line 118

def add_platform_foss_defaults(host, platform)
  FOSS_DEFAULTS[platform].each_pair do |key, val|
    host[key] = val
  end
  # add the group and type for backwards compatability 
  if host['platform'] =~ /windows/
    host['group'] = 'Administrators'
  else
    host['group'] = 'puppet'
  end
  host['type'] = 'foss'
end

#remove_foss_defaults_on(hosts) ⇒ Object

Remove the appropriate foss defaults from an array of hosts

Parameters:

  • hosts (Host, Array<Host>, String, Symbol)

    One or more hosts to act upon, or a role (String or Symbol) that identifies one or more hosts.



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/beaker/dsl/install_utils/foss_defaults.rb', line 168

def remove_foss_defaults_on(hosts)
  block_on hosts do | host |
    case host.class.to_s.downcase
    when /aix|unix/
      platform = 'unix'
    when /freebsd/
      platform = 'freebsd'
    when /openbsd/
      platform = 'openbsd'
    when /mac/
      platform = 'mac'
    when /pswindows/
      platform = 'pswindows'
    else
      platform = 'windows'
    end
    remove_platform_foss_defaults(host, platform)
  end
end

#remove_platform_foss_defaults(host, platform) ⇒ Object

Remove the appropriate foss defaults from the host object so that they can no longer be accessed using host, set host = nil

Parameters:

  • host (Host)

    A single host to act upon

  • platform (String)

    The platform type of this host, one of windows, pswindows, freebsd, mac & unix



157
158
159
160
161
162
163
# File 'lib/beaker/dsl/install_utils/foss_defaults.rb', line 157

def remove_platform_foss_defaults(host, platform)
  FOSS_DEFAULTS[platform].each_pair do |key, val|
    host.delete(key)
  end
  host['group'] = nil
  host['type'] = nil
end