OLD | NEW |
(Empty) | |
| 1 # == Class: nodejs |
| 2 # |
| 3 # Install nodejs package from source |
| 4 # |
| 5 # == Parameters: |
| 6 # |
| 7 # [*package*] |
| 8 # Overwrite the default package options, to fine-tune the target version (i.e. |
| 9 # ensure => 'latest') or remove nodejs (ensure => 'absent' or 'purged') |
| 10 # |
| 11 # [*key*] |
| 12 # Overwrite the default apt::key used (given Class['apt'] is defined). |
| 13 # |
| 14 # [*source*] |
| 15 # Overwrite the default apt::source used (given Class['apt'] is defined). |
| 16 # |
| 17 # [*packages*] |
| 18 # Adds adittional packages with npm. |
| 19 # |
| 20 # === Examples: |
| 21 # |
| 22 # class {'nodejs': |
| 23 # package => { |
| 24 # ensure => 'latest', |
| 25 # }, |
| 26 # } |
| 27 # |
| 28 # |
| 29 class nodejs ( |
| 30 $key = { |
| 31 key => '68576280', |
| 32 key_content => template("nodejs/nodesource.gpg.key.erb"), |
| 33 }, |
| 34 $package = {}, |
| 35 $source = { |
| 36 location => 'https://deb.nodesource.com/node_4.x', |
| 37 release => downcase($lsbdistcodename), |
| 38 repos => 'main', |
| 39 }, |
| 40 $packages = {}, |
| 41 ) { |
| 42 |
| 43 # Used as default $ensure parameter for most resources below |
| 44 $ensure = ensure_state($ensure) ? { |
| 45 false => 'absent', |
| 46 true => 'present', |
| 47 } |
| 48 |
| 49 ensure_resource('package', $title, merge({ |
| 50 name => $title, |
| 51 ensure => $ensure, |
| 52 }, $package)) |
| 53 |
| 54 # The only package provider recognized implicitly |
| 55 ensure_resource('apt::key', $title, merge({ |
| 56 ensure => $ensure, |
| 57 name => 'nodesource', |
| 58 }, $key)) |
| 59 |
| 60 ensure_resource('apt::source', $title, merge({ |
| 61 ensure => $ensure, |
| 62 include_src => false, |
| 63 name => 'nodesource', |
| 64 }, $source)) |
| 65 |
| 66 Apt::Source[$title] <- Apt::Key[$title] |
| 67 Apt::Source[$title] -> Package[$title] |
| 68 |
| 69 create_resources('nodejs::package', $packages) |
| 70 } |
| 71 |
OLD | NEW |