diff options
Diffstat (limited to 'puppet/modules')
| -rw-r--r-- | puppet/modules/site_config/manifests/packages/base.pp | 16 | ||||
| -rw-r--r-- | puppet/modules/site_config/manifests/packages/build_essential.pp | 8 | ||||
| -rw-r--r-- | puppet/modules/site_config/manifests/packages/uninstall.pp | 20 | ||||
| -rw-r--r-- | puppet/modules/site_config/manifests/params.pp | 1 | ||||
| -rw-r--r-- | puppet/modules/site_config/manifests/ruby/dev.pp | 2 | ||||
| -rw-r--r-- | puppet/modules/site_static/README | 3 | ||||
| -rw-r--r-- | puppet/modules/site_static/manifests/domain.pp | 9 | ||||
| -rw-r--r-- | puppet/modules/site_static/manifests/init.pp | 13 | ||||
| -rw-r--r-- | puppet/modules/site_static/manifests/location.pp | 25 | 
9 files changed, 81 insertions, 16 deletions
| diff --git a/puppet/modules/site_config/manifests/packages/base.pp b/puppet/modules/site_config/manifests/packages/base.pp index 9d416043..28aa4dbb 100644 --- a/puppet/modules/site_config/manifests/packages/base.pp +++ b/puppet/modules/site_config/manifests/packages/base.pp @@ -1,7 +1,5 @@  class site_config::packages::base { -  include site_config::params -    # base set of packages that we want to have installed everywhere    package { [ 'etckeeper', 'screen', 'less', 'ntp' ]:      ensure => installed, @@ -16,18 +14,4 @@ class site_config::packages::base {                'x11-utils', 'xterm' ]:      ensure => absent;    } - -  if $::site_config::params::environment == 'local' or $::services =~ /\bwebapp\b/ { -    $dev_packages_ensure = present -  } else { -    $dev_packages_ensure = absent -  } - -  # g++ and ruby1.9.1-dev are needed for nickserver/eventmachine (#4079) -  # dev_packages are needed for building gems on the webapp node - -  package { [ 'build-essential', 'g++', 'g++-4.7', 'gcc', -              'gcc-4.6', 'gcc-4.7', 'cpp', 'cpp-4.6', 'cpp-4.7', 'libc6-dev' ]: -    ensure => $dev_packages_ensure -  }  } diff --git a/puppet/modules/site_config/manifests/packages/build_essential.pp b/puppet/modules/site_config/manifests/packages/build_essential.pp new file mode 100644 index 00000000..c9efaafb --- /dev/null +++ b/puppet/modules/site_config/manifests/packages/build_essential.pp @@ -0,0 +1,8 @@ +# +# include this whenever you want to ensure build-essential package and related compilers are installed. +# +class site_config::packages::build_essential { +  if $install_build_essential == undef { +    $install_build_essential = true +  } +}
\ No newline at end of file diff --git a/puppet/modules/site_config/manifests/packages/uninstall.pp b/puppet/modules/site_config/manifests/packages/uninstall.pp new file mode 100644 index 00000000..2919cc96 --- /dev/null +++ b/puppet/modules/site_config/manifests/packages/uninstall.pp @@ -0,0 +1,20 @@ +# +# this should be included last to allow other modules to set $::install_build_packages +# +class site_config::packages::uninstall { + +  if $site_config::packages::build_essential::install_essential == true { +    $dev_packages_ensure = present +  } else { +    $dev_packages_ensure = absent +  } + +  # generally, dev packages are needed for installing ruby gems with native extensions. +  # (nickserver, webapp, etc) + +  package { [ 'build-essential', 'g++', 'g++-4.7', 'gcc', +              'gcc-4.6', 'gcc-4.7', 'cpp', 'cpp-4.6', 'cpp-4.7', 'libc6-dev' ]: +    ensure => $dev_packages_ensure +  } + +}
\ No newline at end of file diff --git a/puppet/modules/site_config/manifests/params.pp b/puppet/modules/site_config/manifests/params.pp index 5bdc0077..012b3ce0 100644 --- a/puppet/modules/site_config/manifests/params.pp +++ b/puppet/modules/site_config/manifests/params.pp @@ -8,6 +8,7 @@ class site_config::params {    if $environment == 'local' {      $interface = 'eth1' +    include site_config::packages::build_essential    }    elsif hiera('interface','') != '' {      $interface = hiera('interface') diff --git a/puppet/modules/site_config/manifests/ruby/dev.pp b/puppet/modules/site_config/manifests/ruby/dev.pp index dbc77ae7..3ea6ca96 100644 --- a/puppet/modules/site_config/manifests/ruby/dev.pp +++ b/puppet/modules/site_config/manifests/ruby/dev.pp @@ -3,4 +3,6 @@ class site_config::ruby::dev inherits site_config::ruby {      ruby_version => '1.9.3',      install_dev  => true    } +  # building gems locally probably requires build-essential and gcc: +  include site_config::packages::build_essential  } diff --git a/puppet/modules/site_static/README b/puppet/modules/site_static/README new file mode 100644 index 00000000..bc719782 --- /dev/null +++ b/puppet/modules/site_static/README @@ -0,0 +1,3 @@ +Deploy one or more static websites to a node. + +For now, it only supports `amber` based static sites. Should support plain html and jekyll in the future. diff --git a/puppet/modules/site_static/manifests/domain.pp b/puppet/modules/site_static/manifests/domain.pp new file mode 100644 index 00000000..48284106 --- /dev/null +++ b/puppet/modules/site_static/manifests/domain.pp @@ -0,0 +1,9 @@ +define site_static::domain ( +  $locations, +  $ca_cert, +  $key, +  $cert, +  $tls_only) { + +  create_resources(site_static::location, $locations) +} diff --git a/puppet/modules/site_static/manifests/init.pp b/puppet/modules/site_static/manifests/init.pp new file mode 100644 index 00000000..cc447cf7 --- /dev/null +++ b/puppet/modules/site_static/manifests/init.pp @@ -0,0 +1,13 @@ +class site_static { +  tag 'leap_service' +  $static        = hiera('static') +  $domains       = $static['domains'] +  $formats       = $static['formats'] + +  if (member($formats, 'amber')) { +    include site_config::ruby::dev +    rubygems::gem{'amber': } +  } + +  create_resources(site_static::domain, $domains) +}
\ No newline at end of file diff --git a/puppet/modules/site_static/manifests/location.pp b/puppet/modules/site_static/manifests/location.pp new file mode 100644 index 00000000..1ba6807e --- /dev/null +++ b/puppet/modules/site_static/manifests/location.pp @@ -0,0 +1,25 @@ +define site_static::location($path, $format, $source) { + +  $file_path = "/srv/static/${name}" + +  if ($format == 'amber') { +    exec {"amber_build_${name}": +      cwd     => $file_path, +      command => 'amber rebuild', +      user    => 'www-data', +      timeout => 600, +      subscribe => Vcsrepo[$file_path] +    } +  } + +  vcsrepo { $file_path: +    ensure   => present, +    force    => true, +    revision => $source['revision'], +    provider => $source['type'], +    source   => $source['repo'], +    owner    => 'www-data', +    group    => 'www-data' +  } + +} | 
