# Class: profiles::yum::global class profiles::yum::global ( Hash $repos = {}, Boolean $purge = true, ){ class { 'yum': keep_kernel_devel => true, clean_old_kernels => true, config_options => { gpgcheck => true, }, } # purge all yum repos not defined by puppet resources { 'yumrepo': purge => $purge, } # download all gpg keys if a repo defines it $repos.each |$name, $repo| { if $repo['gpgkey'] { $key_url = $repo['gpgkey'] $key_file = "/etc/pki/rpm-gpg/${name}-gpg-key" exec { "download_gpg_key_${name}": command => "curl -s -o ${key_file} ${key_url} && rpm --import ${key_file}", path => ['/bin', 'usr/bin'], creates => $key_file, before => Yumrepo[$name], } } } # create repos create_resources('yumrepo', $repos) # makecache if changes made to repos exec {'dnf_makecache': command => 'dnf makecache -q', path => ['/usr/bin', '/bin'], refreshonly => true, } # setup dnf-autoupdate include profiles::yum::autoupdater }