Puppet Class: nexus::package

Defined in:
manifests/package.pp

Summary

Install the Nexus Repository Manager package

Overview



6
7
8
9
10
11
12
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'manifests/package.pp', line 6

class nexus::package {
  assert_private()

  case $nexus::package_type {
    'src': {
      if !$nexus::version {
        fail('nexus::version must be set when using package_type => src')
      }

      if $nexus::java_runtime {
        # Relevant only for Nexus versions >= 3.67.0-03 and < 3.71.0
        $nexus_archive = "nexus-${nexus::version}-${nexus::java_runtime}-unix.tar.gz"
      } else {
        if (versioncmp($nexus::version, '3.78.0') >= 0) {
          $hardware      = regsubst($facts['os']['hardware'], '_','-')
          $nexus_archive = "nexus-unix-${hardware}-${nexus::version}.tar.gz"
        } else {
          $nexus_archive = "nexus-${nexus::version}-unix.tar.gz"
        }
      }

      $download_url = "${nexus::download_site}/${nexus_archive}"
      $dl_file      = "${nexus::download_folder}/${nexus_archive}"
      $install_dir  = "${nexus::install_root}/nexus-${nexus::version}"

      extlib::mkdir_p($nexus::install_root)

      archive { $dl_file:
        source        => $download_url,
        extract       => true,
        extract_path  => $nexus::install_root,
        checksum_url  => "${download_url}.sha1",
        checksum_type => 'sha1',
        proxy_server  => $nexus::download_proxy,
        creates       => $install_dir,
        user          => 'root',
        group         => 'root',
      }

      # Prevent "Couldn't flush user prefs" error - https://issues.sonatype.org/browse/NEXUS-3671
      file { ["${nexus::install_root}/.java", "${nexus::install_root}/.java/.userPrefs"]:
        ensure => directory,
        owner  => $nexus::user,
        group  => $nexus::group,
        mode   => '0700',
      }

      if $nexus::purge_installations {
        File <| title == $nexus::install_root |> {
          ensure  => 'directory',
          backup  => false,
          force   => true,
          purge   => true,
          recurse => true,
          ignore  => [
            "nexus-${nexus::version}",
            'sonatype-work',
          ],
          require => [
            Archive[$dl_file],
          ],
          before  => [
            Class['nexus::service'],
          ],
        }
      }

      if $nexus::manage_work_dir {
        $directories = [
          $nexus::work_dir,
          "${nexus::work_dir}/etc",
          "${nexus::work_dir}/log",
          "${nexus::work_dir}/orient",
          "${nexus::work_dir}/tmp",
        ]

        file { $directories:
          ensure  => directory,
          owner   => $nexus::user,
          group   => $nexus::group,
          require => Archive[$dl_file],
        }
      }
    }
    'pkg': {
      $install_dir = "${nexus::install_root}/nexus"
      package { $nexus::package_name:
        ensure => $nexus::package_ensure,
      }
    }
    default: {
      fail("Unknown value for nexus::package_type: ${nexus::package_type}")
    }
  }
}