Defined Type: psick::yum::repo

Defined in:
manifests/yum/repo.pp

Overview

Define psick::yum::repo

Derived from example42-yum module

Parameters:

  • descr (String) (defaults to: 'absent')
  • baseurl (String) (defaults to: 'absent')
  • mirrorlist (String) (defaults to: 'absent')
  • enabled (Integer) (defaults to: 0)
  • gpgcheck (Integer) (defaults to: 0)
  • gpgkey (String) (defaults to: 'absent')
  • gpgkey_source (String) (defaults to: '')
  • gpgkey_name (String) (defaults to: '')
  • failovermethod (String) (defaults to: 'absent')
  • priority (Integer) (defaults to: 99)
  • protect (String) (defaults to: 'absent')
  • exclude (String) (defaults to: 'absent')
  • autokeyimport (String) (defaults to: 'no')
  • includepkgs (String) (defaults to: 'absent')
  • metadata_expire (String) (defaults to: 'absent')
  • include (String) (defaults to: 'absent')
  • sslcacert (String) (defaults to: 'absent')
  • sslclientcert (String) (defaults to: 'absent')
  • sslclientkey (String) (defaults to: 'absent')
  • sslverify (String) (defaults to: 'absent')


4
5
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
# File 'manifests/yum/repo.pp', line 4

define psick::yum::repo (
  String $descr           = 'absent',
  String $baseurl         = 'absent',
  String $mirrorlist      = 'absent',
  Integer $enabled        = 0,
  Integer $gpgcheck       = 0,
  String $gpgkey          = 'absent',
  String $gpgkey_source   = '', # lint:ignore:params_empty_string_assignment
  String $gpgkey_name     = '', # lint:ignore:params_empty_string_assignment
  String $failovermethod  = 'absent',
  Integer $priority       = 99,
  String $protect         = 'absent',
  String $exclude         = 'absent',
  String $autokeyimport   = 'no',
  String $includepkgs     = 'absent',
  String $metadata_expire = 'absent',
  String $include         = 'absent',
  String $sslcacert       = 'absent',
  String $sslclientcert   = 'absent',
  String $sslclientkey    = 'absent',
  String $sslverify       = 'absent',
) {
  if $protect != 'absent' {
    if ! defined(Psick::Yum::Plugin['protectbase']) {
      psick::yum::plugin { 'protectbase': }
    }
  }

  if ! defined(File["/etc/yum.repos.d/${name}.repo"]) {
    file { "/etc/yum.repos.d/${name}.repo":
      ensure  => file,
      replace => false,
      before  => Yumrepo[$name],
      mode    => '0644',
      owner   => 'root',
      group   => 0,
    }

    $gpgkey_real_name = $gpgkey_name ? {
      ''      => parse_url($gpgkey_source,'filename'),
      default => $gpgkey_name,
    }

    if $gpgkey_source != '' {
      if ! defined(File["/etc/pki/rpm-gpg/${gpgkey_real_name}"]) {
        file { "/etc/pki/rpm-gpg/${gpgkey_real_name}":
          ensure  => file,
          replace => false,
          before  => Yumrepo[$name],
          source  => $gpgkey_source,
          mode    => '0644',
          owner   => 'root',
          group   => 0,
        }
      }
    }
  }

  if ! defined(Yumrepo[$name]) {
    yumrepo { $name:
      descr           => $descr,
      baseurl         => $baseurl,
      mirrorlist      => $mirrorlist,
      enabled         => $enabled,
      gpgcheck        => $gpgcheck,
      gpgkey          => $gpgkey,
      failovermethod  => $failovermethod,
      priority        => $priority,
      protect         => $protect,
      exclude         => $exclude,
      includepkgs     => $includepkgs,
      metadata_expire => $metadata_expire,
      include         => $include,
      sslcacert       => $sslcacert,
      sslclientcert   => $sslclientcert,
      sslclientkey    => $sslclientkey,
      sslverify       => $sslverify,
    }

    if $autokeyimport == 'yes' and $gpgkey != '' {
      exec { "rpmkey_add_${gpgkey}":
        command     => "rpm --import ${gpgkey}",
        before      => Yumrepo[$name],
        refreshonly => true,
        path        => '/sbin:/bin:/usr/sbin:/usr/bin',
      }
    }
  }
}