# Class: profiles::yum::global # # This class manages global YUM configurations and optionally includes the # base and EPEL yum repository profiles based on the content of the # $managed_repos parameter, which is an array of repository names. class profiles::yum::global ( Array[String] $managed_repos, Boolean $purge = true, ){ class { 'yum': keep_kernel_devel => true, clean_old_kernels => true, config_options => { gpgcheck => true, }, } resources { 'yumrepo': purge => $purge, } # Generate the content for the .managed file $managed_file_content = $managed_repos.map |$repo_name| { "${repo_name}.repo" }.join("\n") # Create the .managed file file { '/etc/yum.repos.d/.managed': ensure => file, content => $managed_file_content, } # Setup base repos class { 'profiles::yum::base': managed_repos => $managed_repos, require => Class['profiles::pki::vaultca'], } # Setup epel if included in managed_repos class { 'profiles::yum::epel': managed_repos => $managed_repos, require => Class['profiles::pki::vaultca'], } # Setup puppet7 if included in managed_repos class { 'profiles::yum::puppet7': managed_repos => $managed_repos, require => Class['profiles::pki::vaultca'], } # Setup unkin repo if included in managed_repos class { 'profiles::yum::unkin': managed_repos => $managed_repos, require => Class['profiles::pki::vaultca'], } # Setup ovirt repo if included in managed_repos class { 'profiles::yum::ovirt': managed_repos => $managed_repos, require => Class['profiles::pki::vaultca'], } # 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 }