Merge pull request 'neoloc/yumrepos' (#212) from neoloc/yumrepos into develop
Reviewed-on: unkinben/puppet-prod#212
This commit is contained in:
commit
0e7168026d
@ -99,6 +99,9 @@ lookup_options:
|
|||||||
postgresql_config_entries:
|
postgresql_config_entries:
|
||||||
merge:
|
merge:
|
||||||
strategy: deep
|
strategy: deep
|
||||||
|
profiles::yum::global::repos:
|
||||||
|
merge:
|
||||||
|
strategy: deep
|
||||||
|
|
||||||
facts_path: '/opt/puppetlabs/facter/facts.d'
|
facts_path: '/opt/puppetlabs/facter/facts.d'
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,2 @@
|
|||||||
# hieradata/os/AlmaLinux/AlmaLinux8.yaml
|
# hieradata/os/AlmaLinux/AlmaLinux8.yaml
|
||||||
---
|
---
|
||||||
profiles::yum::global::managed_repos:
|
|
||||||
- 'base'
|
|
||||||
- 'appstream'
|
|
||||||
- 'epel'
|
|
||||||
- 'powertools'
|
|
||||||
- 'highavailability'
|
|
||||||
- 'puppet7'
|
|
||||||
- 'yum.postgresql.org'
|
|
||||||
- 'unkin'
|
|
||||||
|
|||||||
@ -1,8 +1,2 @@
|
|||||||
# hieradata/os/AlmaLinux/AlmaLinux9.yaml
|
# hieradata/os/AlmaLinux/AlmaLinux9.yaml
|
||||||
---
|
---
|
||||||
profiles::yum::global::managed_repos:
|
|
||||||
- 'base'
|
|
||||||
- 'appstream'
|
|
||||||
- 'epel'
|
|
||||||
- 'puppet7'
|
|
||||||
- 'yum.postgresql.org'
|
|
||||||
|
|||||||
@ -1,9 +1,5 @@
|
|||||||
# hieradata/os/almalinux/all_releases.yaml
|
# hieradata/os/almalinux/all_releases.yaml
|
||||||
---
|
---
|
||||||
profiles::yum::base::baseurl: https://repos.main.unkin.net/almalinux
|
|
||||||
profiles::yum::epel::baseurl: https://repos.main.unkin.net/epel
|
|
||||||
profiles::yum::unkin::baseurl: https://repos.main.unkin.net/unkin
|
|
||||||
profiles::yum::ovirt::baseurl: https://repos.main.unkin.net/centos
|
|
||||||
profiles::firewall::firewalld::ensure_package: 'absent'
|
profiles::firewall::firewalld::ensure_package: 'absent'
|
||||||
profiles::firewall::firewalld::ensure_service: 'stopped'
|
profiles::firewall::firewalld::ensure_service: 'stopped'
|
||||||
profiles::firewall::firewalld::enable_service: false
|
profiles::firewall::firewalld::enable_service: false
|
||||||
@ -15,3 +11,52 @@ profiles::packages::install:
|
|||||||
- policycoreutils
|
- policycoreutils
|
||||||
|
|
||||||
lm-sensors::package: lm_sensors
|
lm-sensors::package: lm_sensors
|
||||||
|
|
||||||
|
profiles::yum::global::repos:
|
||||||
|
baseos:
|
||||||
|
name: baseos
|
||||||
|
descr: baseos repository
|
||||||
|
target: /etc/yum.repos.d/almalinux.repo
|
||||||
|
baseurl: https://edgecache.query.consul/almalinux/%{facts.os.release.full}/BaseOS/%{facts.os.architecture}/os
|
||||||
|
gpgkey: http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-%{facts.os.release.major}
|
||||||
|
extras:
|
||||||
|
name: extras
|
||||||
|
descr: extras repository
|
||||||
|
target: /etc/yum.repos.d/almalinux.repo
|
||||||
|
baseurl: https://edgecache.query.consul/almalinux/%{facts.os.release.full}/extras/%{facts.os.architecture}/os
|
||||||
|
gpgkey: http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-%{facts.os.release.major}
|
||||||
|
appstream:
|
||||||
|
name: appstream
|
||||||
|
descr: appstream repository
|
||||||
|
target: /etc/yum.repos.d/almalinux.repo
|
||||||
|
baseurl: https://edgecache.query.consul/almalinux/%{facts.os.release.full}/AppStream/%{facts.os.architecture}/os
|
||||||
|
gpgkey: http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-%{facts.os.release.major}
|
||||||
|
powertools:
|
||||||
|
name: powertools
|
||||||
|
descr: powertools repository
|
||||||
|
target: /etc/yum.repos.d/almalinux.repo
|
||||||
|
baseurl: https://edgecache.query.consul/almalinux/%{facts.os.release.full}/PowerTools/%{facts.os.architecture}/os
|
||||||
|
gpgkey: http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-%{facts.os.release.major}
|
||||||
|
highavailability:
|
||||||
|
name: highavailability
|
||||||
|
descr: highavailability repository
|
||||||
|
target: /etc/yum.repos.d/almalinux.repo
|
||||||
|
baseurl: https://edgecache.query.consul/almalinux/%{facts.os.release.full}/HighAvailability/%{facts.os.architecture}/os
|
||||||
|
gpgkey: http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-%{facts.os.release.major}
|
||||||
|
epel:
|
||||||
|
name: epel
|
||||||
|
descr: epel repository
|
||||||
|
target: /etc/yum.repos.d/epel.repo
|
||||||
|
baseurl: https://edgecache.query.consul/epel/%{facts.os.release.major}/Everything/%{facts.os.architecture}
|
||||||
|
gpgkey: http://edgecache.query.consul/epel/RPM-GPG-KEY-EPEL-%{facts.os.release.major}
|
||||||
|
puppet:
|
||||||
|
name: puppet
|
||||||
|
descr: puppet repository
|
||||||
|
target: /etc/yum.repos.d/puppet.repo
|
||||||
|
baseurl: https://yum.puppet.com/puppet7/el/%{facts.os.release.major}/%{facts.os.architecture}
|
||||||
|
gpgkey: https://yum.puppet.com/RPM-GPG-KEY-puppet-20250406
|
||||||
|
unkin:
|
||||||
|
name: unkin
|
||||||
|
descr: unkin repository
|
||||||
|
target: /etc/yum.repos.d/unkin.repo
|
||||||
|
baseurl: https://repos.main.unkin.net/unkin/%{facts.os.release.major}/%{facts.os.architecture}/os
|
||||||
|
|||||||
@ -1,10 +1,50 @@
|
|||||||
---
|
---
|
||||||
profiles::yum::global::managed_repos:
|
profiles::yum::global::repos:
|
||||||
- 'virt-advanced-virtualization'
|
centos_8_advanced_virtualization:
|
||||||
- 'storage-ceph-pacific'
|
name: 'virt-advanced-virtualization'
|
||||||
- 'cloud-openstack-xena'
|
descr: 'CentOS Advanced Virtualization'
|
||||||
- 'messaging-rabbitmq-38'
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
- 'nfv-openvswitch-2'
|
baseurl: https://edgecache.query.consul/centos/8-stream/virt/x86_64/advancedvirt-common
|
||||||
- 'opstools-collectd-5'
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization'
|
||||||
- 'storage-gluster-10'
|
centos_8_ceph_pacific:
|
||||||
- 'virt-ovirt-45'
|
name: 'storage-ceph-pacific'
|
||||||
|
descr: 'CentOS Ceph Pacific'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/storage/x86_64/ceph-pacific
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage'
|
||||||
|
centos_8_rabbitmq_38:
|
||||||
|
name: 'messaging-rabbitmq-38'
|
||||||
|
descr: 'CentOS RabbitMQ 38'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/messaging/x86_64/rabbitmq-38
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Messaging'
|
||||||
|
centos_8_nfv_openvswitch:
|
||||||
|
name: 'nfv-openvswitch-2'
|
||||||
|
descr: 'CentOS NFV OpenvSwitch'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/nfv/x86_64/openvswitch-2
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-NFV'
|
||||||
|
centos_8_openstack_xena:
|
||||||
|
name: 'cloud-openstack-xena'
|
||||||
|
descr: 'CentOS OpenStack Xena'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/cloud/x86_64/openstack-xena
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Cloud'
|
||||||
|
centos_8_opstools:
|
||||||
|
name: 'opstools-collectd-5'
|
||||||
|
descr: 'CentOS OpsTools - collectd'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/opstools/x86_64/collectd-5
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-OpsTools'
|
||||||
|
centos_8_ovirt45:
|
||||||
|
name: 'virt-ovirt-45'
|
||||||
|
descr: 'CentOS oVirt 4.5'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/virt/x86_64/ovirt-45
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization'
|
||||||
|
centos_8_stream_gluster10:
|
||||||
|
name: 'storage-gluster-10'
|
||||||
|
descr: 'CentOS oVirt 4.5 - Glusterfs 10'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/storage/x86_64/gluster-10
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage'
|
||||||
|
|||||||
@ -1,17 +1,58 @@
|
|||||||
---
|
---
|
||||||
profiles::firewall::firewalld::ensure_package: 'installed'
|
profiles::firewall::firewalld::ensure_package: 'installed'
|
||||||
profiles::firewall::firewalld::ensure_service: 'running'
|
profiles::firewall::firewalld::ensure_service: 'running'
|
||||||
profiles::yum::global::managed_repos:
|
|
||||||
- 'virt-advanced-virtualization'
|
|
||||||
- 'storage-ceph-pacific'
|
|
||||||
- 'cloud-openstack-xena'
|
|
||||||
- 'messaging-rabbitmq-38'
|
|
||||||
- 'nfv-openvswitch-2'
|
|
||||||
- 'opstools-collectd-5'
|
|
||||||
- 'storage-gluster-10'
|
|
||||||
- 'virt-ovirt-45'
|
|
||||||
|
|
||||||
sudo::purge_ignore:
|
sudo::purge_ignore:
|
||||||
- '50_vdsm'
|
- '50_vdsm'
|
||||||
- '50_vdsm_hook_ovirt_provider_ovn_hook'
|
- '50_vdsm_hook_ovirt_provider_ovn_hook'
|
||||||
- '60_ovirt-ha'
|
- '60_ovirt-ha'
|
||||||
|
|
||||||
|
profiles::yum::global::repos:
|
||||||
|
centos_8_advanced_virtualization:
|
||||||
|
name: 'virt-advanced-virtualization'
|
||||||
|
descr: 'CentOS Advanced Virtualization'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/virt/x86_64/advancedvirt-common
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization'
|
||||||
|
centos_8_ceph_pacific:
|
||||||
|
name: 'storage-ceph-pacific'
|
||||||
|
descr: 'CentOS Ceph Pacific'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/storage/x86_64/ceph-pacific
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage'
|
||||||
|
centos_8_rabbitmq_38:
|
||||||
|
name: 'messaging-rabbitmq-38'
|
||||||
|
descr: 'CentOS RabbitMQ 38'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/messaging/x86_64/rabbitmq-38
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Messaging'
|
||||||
|
centos_8_nfv_openvswitch:
|
||||||
|
name: 'nfv-openvswitch-2'
|
||||||
|
descr: 'CentOS NFV OpenvSwitch'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/nfv/x86_64/openvswitch-2
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-NFV'
|
||||||
|
centos_8_openstack_xena:
|
||||||
|
name: 'cloud-openstack-xena'
|
||||||
|
descr: 'CentOS OpenStack Xena'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/cloud/x86_64/openstack-xena
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Cloud'
|
||||||
|
centos_8_opstools:
|
||||||
|
name: 'opstools-collectd-5'
|
||||||
|
descr: 'CentOS OpsTools - collectd'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/opstools/x86_64/collectd-5
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-OpsTools'
|
||||||
|
centos_8_ovirt45:
|
||||||
|
name: 'virt-ovirt-45'
|
||||||
|
descr: 'CentOS oVirt 4.5'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/virt/x86_64/ovirt-45
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization'
|
||||||
|
centos_8_stream_gluster10:
|
||||||
|
name: 'storage-gluster-10'
|
||||||
|
descr: 'CentOS oVirt 4.5 - Glusterfs 10'
|
||||||
|
target: /etc/yum.repos.d/ovirt.repo
|
||||||
|
baseurl: https://edgecache.query.consul/centos/8-stream/storage/x86_64/gluster-10
|
||||||
|
gpgkey: 'https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage'
|
||||||
|
|||||||
@ -35,6 +35,7 @@ profiles::edgecache::params::nginx_aliases:
|
|||||||
profiles::edgecache::params::directories:
|
profiles::edgecache::params::directories:
|
||||||
/data/edgecache: { owner: root, group: root }
|
/data/edgecache: { owner: root, group: root }
|
||||||
/data/edgecache/pub: { owner: nginx, group: nginx }
|
/data/edgecache/pub: { owner: nginx, group: nginx }
|
||||||
|
/data/edgecache/pub/centos: { owner: nginx, group: nginx }
|
||||||
/data/edgecache/pub/almalinux: { owner: nginx, group: nginx }
|
/data/edgecache/pub/almalinux: { owner: nginx, group: nginx }
|
||||||
/data/edgecache/pub/debian: { owner: nginx, group: nginx }
|
/data/edgecache/pub/debian: { owner: nginx, group: nginx }
|
||||||
/data/edgecache/pub/epel: { owner: nginx, group: nginx }
|
/data/edgecache/pub/epel: { owner: nginx, group: nginx }
|
||||||
@ -55,6 +56,18 @@ profiles::edgecache::params::mirrors:
|
|||||||
proxy_cache_valid:
|
proxy_cache_valid:
|
||||||
- '200 302 1440h'
|
- '200 302 1440h'
|
||||||
- '404 1m'
|
- '404 1m'
|
||||||
|
centos_repodata:
|
||||||
|
ensure: present
|
||||||
|
location: '~* ^/centos/.*/repodata/'
|
||||||
|
proxy: http://gsl-syd.mm.fcix.net
|
||||||
|
centos_data:
|
||||||
|
ensure: present
|
||||||
|
location: /centos
|
||||||
|
proxy: http://gsl-syd.mm.fcix.net
|
||||||
|
proxy_cache: cache
|
||||||
|
proxy_cache_valid:
|
||||||
|
- '200 302 1440h'
|
||||||
|
- '404 1m'
|
||||||
almalinux_repodata:
|
almalinux_repodata:
|
||||||
ensure: present
|
ensure: present
|
||||||
location: '~* ^/almalinux/.*/repodata/'
|
location: '~* ^/almalinux/.*/repodata/'
|
||||||
|
|||||||
@ -19,7 +19,7 @@ class profiles::puppet::agent (
|
|||||||
# Ensure the puppet-agent package is installed and locked to a specific version
|
# Ensure the puppet-agent package is installed and locked to a specific version
|
||||||
package { 'puppet-agent':
|
package { 'puppet-agent':
|
||||||
ensure => $puppet_version,
|
ensure => $puppet_version,
|
||||||
require => Class['profiles::yum::puppet7'],
|
require => Yumrepo['puppet'],
|
||||||
}
|
}
|
||||||
|
|
||||||
# versionlock puppet-agent
|
# versionlock puppet-agent
|
||||||
|
|||||||
@ -1,92 +0,0 @@
|
|||||||
# Class: profiles::yum::base
|
|
||||||
#
|
|
||||||
# This class manages the 'base', extras' and 'appstream' yum
|
|
||||||
# repositories for a system, based on the provided list of managed repositories.
|
|
||||||
#
|
|
||||||
# Parameters:
|
|
||||||
# -----------
|
|
||||||
# - $managed_repos: An array containing the names of the repositories to be
|
|
||||||
# managed. This can include 'base', 'extras',
|
|
||||||
# and 'appstream'.
|
|
||||||
#
|
|
||||||
# - $baseurl: The base URL for the yum repositories. This should be the root
|
|
||||||
# URL of your yum mirror server.
|
|
||||||
#
|
|
||||||
# Actions:
|
|
||||||
# --------
|
|
||||||
# - Sets up the 'base', extras', and 'appstream' yum repositories
|
|
||||||
# as specified in the $managed_repos parameter, all using the provided baseurl.
|
|
||||||
#
|
|
||||||
# - Each repo configuration includes the baseurl parameterized with the OS
|
|
||||||
# release version and architecture, and specifies the GPG key.
|
|
||||||
#
|
|
||||||
# Example usage:
|
|
||||||
# --------------
|
|
||||||
# To use this class with the default parameters:
|
|
||||||
# class { 'profiles::yum::base':
|
|
||||||
# managed_repos => ['base', 'extras', 'appstream'],
|
|
||||||
# baseurl => 'http://mylocalmirror.com/yum',
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
class profiles::yum::base (
|
|
||||||
Array[String] $managed_repos,
|
|
||||||
String $baseurl,
|
|
||||||
Enum[
|
|
||||||
'daily',
|
|
||||||
'weekly',
|
|
||||||
'monthly'
|
|
||||||
] $snapshot = 'daily',
|
|
||||||
) {
|
|
||||||
$release = $facts['os']['release']['full']
|
|
||||||
$basearch = $facts['os']['architecture']
|
|
||||||
|
|
||||||
if 'base' in $managed_repos {
|
|
||||||
yumrepo { 'base':
|
|
||||||
name => 'base',
|
|
||||||
descr => 'base repository',
|
|
||||||
target => '/etc/yum.repos.d/base.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/BaseOS-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/${release}/BaseOS-${snapshot}/${basearch}/os/RPM-GPG-KEY-${facts['os']['name']}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if 'extras' in $managed_repos {
|
|
||||||
yumrepo { 'extras':
|
|
||||||
name => 'extras',
|
|
||||||
descr => 'extras repository',
|
|
||||||
target => '/etc/yum.repos.d/extras.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/extras-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/${release}/extras-${snapshot}/${basearch}/os/RPM-GPG-KEY-${facts['os']['name']}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if 'appstream' in $managed_repos {
|
|
||||||
yumrepo { 'appstream':
|
|
||||||
name => 'appstream',
|
|
||||||
descr => 'appstream repository',
|
|
||||||
target => '/etc/yum.repos.d/appstream.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/AppStream-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/${release}/AppStream-${snapshot}/${basearch}/os/RPM-GPG-KEY-${facts['os']['name']}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if 'powertools' in $managed_repos {
|
|
||||||
yumrepo { 'powertools':
|
|
||||||
name => 'powertools',
|
|
||||||
descr => 'powertools repository',
|
|
||||||
target => '/etc/yum.repos.d/powertools.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/PowerTools-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/${release}/PowerTools-${snapshot}/${basearch}/os/RPM-GPG-KEY-${facts['os']['name']}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if 'highavailability' in $managed_repos {
|
|
||||||
yumrepo { 'highavailability':
|
|
||||||
name => 'highavailability',
|
|
||||||
descr => 'highavailability repository',
|
|
||||||
target => '/etc/yum.repos.d/highavailability.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/HighAvailability-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/${release}/HighAvailability-${snapshot}/${basearch}/os/RPM-GPG-KEY-${facts['os']['name']}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
# Class: profiles::yum::epel
|
|
||||||
#
|
|
||||||
# This class manages the EPEL yum repository for the system.
|
|
||||||
#
|
|
||||||
# Parameters:
|
|
||||||
# -----------
|
|
||||||
# - $baseurl: The base URL for the EPEL yum repository. This should be the root
|
|
||||||
# URL of your EPEL mirror server.
|
|
||||||
#
|
|
||||||
# Actions:
|
|
||||||
# --------
|
|
||||||
# - Checks the OS release version.
|
|
||||||
#
|
|
||||||
# - If the release version is 7, 8, or 9, it sets up the 'epel' yum repository
|
|
||||||
#
|
|
||||||
# - If the release version is not supported, it raises an error.
|
|
||||||
#
|
|
||||||
# Example usage:
|
|
||||||
# --------------
|
|
||||||
# To use this class with the default parameters:
|
|
||||||
# include profiles::yum::epel
|
|
||||||
#
|
|
||||||
# To specify a custom base URL:
|
|
||||||
# class { 'profiles::yum::epel':
|
|
||||||
# baseurl => 'http://mylocalmirror.com/yum',
|
|
||||||
# }
|
|
||||||
class profiles::yum::epel (
|
|
||||||
Array[String] $managed_repos,
|
|
||||||
String $baseurl,
|
|
||||||
Enum[
|
|
||||||
'daily',
|
|
||||||
'weekly',
|
|
||||||
'monthly'
|
|
||||||
] $snapshot = 'daily',
|
|
||||||
) {
|
|
||||||
$release = $facts['os']['release']['major']
|
|
||||||
$basearch = $facts['os']['architecture']
|
|
||||||
|
|
||||||
if 'epel' in $managed_repos {
|
|
||||||
yumrepo { 'epel':
|
|
||||||
name => 'epel',
|
|
||||||
descr => 'epel repository',
|
|
||||||
target => '/etc/yum.repos.d/epel.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/Everything-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/${release}/Everything-${snapshot}/${basearch}/os/RPM-GPG-KEY-EPEL-${release}",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,48 +1,7 @@
|
|||||||
# Class: profiles::yum::global
|
# 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.
|
|
||||||
#
|
|
||||||
# Parameters:
|
|
||||||
# -----------
|
|
||||||
# - $managed_repos: An array of repository names that the Puppet agent should
|
|
||||||
# manage. This parameter is mandatory and the class will
|
|
||||||
# fail if it is not provided via hieradata.
|
|
||||||
# Example: ['base', 'updates', 'extras', 'appstream']
|
|
||||||
#
|
|
||||||
# Actions:
|
|
||||||
# --------
|
|
||||||
# - Configures global YUM settings, including keeping the kernel development
|
|
||||||
# packages and cleaning old kernels.
|
|
||||||
#
|
|
||||||
# - Establishes default parameters for any YUM repositories managed by Puppet.
|
|
||||||
# This includes the repository file location, the repository description,
|
|
||||||
# and enabling the repository and GPG checks.
|
|
||||||
#
|
|
||||||
# - Depending on the content of the $managed_repos parameter, it includes the
|
|
||||||
# profiles::yum::base and/or profiles::yum::epel classes.
|
|
||||||
#
|
|
||||||
# - Manages all .repo files under /etc/yum.repos.d. All the repositories listed
|
|
||||||
# in $managed_repos will have their corresponding .repo files preserved. Any
|
|
||||||
# .repo file that is not listed in $managed_repos will be removed.
|
|
||||||
#
|
|
||||||
# - Creates and maintains a /etc/yum.repos.d/.managed file that lists all the
|
|
||||||
# .repo files that should be managed by Puppet.
|
|
||||||
#
|
|
||||||
# Example usage:
|
|
||||||
# --------------
|
|
||||||
# To use this class, include the class and configure hieradata:
|
|
||||||
# include profiles::yum::global
|
|
||||||
#
|
|
||||||
# profiles::yum::managed_repos:
|
|
||||||
# - 'base'
|
|
||||||
# - 'extras'
|
|
||||||
# - 'appstream'
|
|
||||||
#
|
|
||||||
class profiles::yum::global (
|
class profiles::yum::global (
|
||||||
Array[String] $managed_repos,
|
Hash $repos = {},
|
||||||
Boolean $purge = true,
|
Boolean $purge = true,
|
||||||
){
|
){
|
||||||
class { 'yum':
|
class { 'yum':
|
||||||
keep_kernel_devel => true,
|
keep_kernel_devel => true,
|
||||||
@ -56,44 +15,8 @@ class profiles::yum::global (
|
|||||||
purge => $purge,
|
purge => $purge,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generate the content for the .managed file
|
# create repos
|
||||||
$managed_file_content = $managed_repos.map |$repo_name| { "${repo_name}.repo" }.join("\n")
|
create_resources('yumrepo', $repos)
|
||||||
|
|
||||||
# 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
|
# makecache if changes made to repos
|
||||||
exec {'dnf_makecache':
|
exec {'dnf_makecache':
|
||||||
|
|||||||
@ -1,25 +0,0 @@
|
|||||||
# Class: profiles::yum::mariadb
|
|
||||||
#
|
|
||||||
# This class manages the mariadb yum repository for the system.
|
|
||||||
#
|
|
||||||
class profiles::yum::mariadb (
|
|
||||||
String $baseurl = 'https://repos.main.unkin.net',
|
|
||||||
String $version = '11.2',
|
|
||||||
Enum[
|
|
||||||
'daily',
|
|
||||||
'weekly',
|
|
||||||
'monthly'
|
|
||||||
] $snapshot = 'daily',
|
|
||||||
) {
|
|
||||||
$release = $facts['os']['release']['major']
|
|
||||||
$basearch = $facts['os']['architecture']
|
|
||||||
|
|
||||||
yumrepo { 'mariadb':
|
|
||||||
name => 'mariadb',
|
|
||||||
descr => 'mariadb repository',
|
|
||||||
target => '/etc/yum.repos.d/mariadb.repo',
|
|
||||||
baseurl => "${baseurl}/mariadb/${version}/el${release}-${snapshot}/${basearch}/os/",
|
|
||||||
gpgkey => "${baseurl}/mariadb/${version}/el${release}-${snapshot}/${basearch}/os/RPM-GPG-KEY-MariaDB",
|
|
||||||
require => Class['profiles::pki::vaultca'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
# Class: profiles::yum::ovirt
|
|
||||||
class profiles::yum::ovirt (
|
|
||||||
Array[String] $managed_repos,
|
|
||||||
String $baseurl,
|
|
||||||
Enum[
|
|
||||||
'daily',
|
|
||||||
'weekly',
|
|
||||||
'monthly'
|
|
||||||
] $snapshot = 'daily',
|
|
||||||
) {
|
|
||||||
$release = $facts['os']['release']['major']
|
|
||||||
$basearch = $facts['os']['architecture']
|
|
||||||
|
|
||||||
$centos_nonstream = [
|
|
||||||
'virt-advanced-virtualization',
|
|
||||||
'storage-ceph-pacific'
|
|
||||||
]
|
|
||||||
$centos_stream = [
|
|
||||||
'cloud-openstack-xena',
|
|
||||||
'messaging-rabbitmq-38',
|
|
||||||
'nfv-openvswitch-2',
|
|
||||||
'opstools-collectd-5',
|
|
||||||
'storage-gluster-10',
|
|
||||||
'virt-ovirt-45'
|
|
||||||
]
|
|
||||||
$centos_nonstream.each |$name| {
|
|
||||||
if $name in $managed_repos {
|
|
||||||
yumrepo { $name:
|
|
||||||
name => $name,
|
|
||||||
descr => $name,
|
|
||||||
target => '/etc/yum.repos.d/ovirt.repo',
|
|
||||||
baseurl => "${baseurl}/${release}/${name}-20240311/${basearch}/os/",
|
|
||||||
gpgcheck => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$centos_stream.each |$name| {
|
|
||||||
if $name in $managed_repos {
|
|
||||||
yumrepo { $name:
|
|
||||||
name => $name,
|
|
||||||
descr => $name,
|
|
||||||
target => '/etc/yum.repos.d/ovirt.repo',
|
|
||||||
baseurl => "${baseurl}/${release}-stream/${name}-20240311/${basearch}/os/",
|
|
||||||
gpgcheck => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
# Class: profiles::yum::epel
|
|
||||||
#
|
|
||||||
# This class manages the puppet7 yum repository for the system.
|
|
||||||
#
|
|
||||||
# Parameters:
|
|
||||||
# -----------
|
|
||||||
# - $baseurl: The base URL for the puppet7 yum repository. This should be the root
|
|
||||||
# URL of your puppet7 mirror server.
|
|
||||||
#
|
|
||||||
# Actions:
|
|
||||||
# --------
|
|
||||||
# - Checks the OS release version.
|
|
||||||
#
|
|
||||||
# - If the release version is 7, 8, or 9, it sets up the 'puppet7' yum repository
|
|
||||||
# and installs the puppet7 release RPM from the provided baseurl.
|
|
||||||
#
|
|
||||||
# - If the release version is not supported, it raises an error.
|
|
||||||
#
|
|
||||||
# - The repo configuration includes the baseurl parameterized with the OS
|
|
||||||
# release version and architecture, and specifies the GPG key.
|
|
||||||
#
|
|
||||||
# Example usage:
|
|
||||||
# --------------
|
|
||||||
# To use this class with the default parameters:
|
|
||||||
# include profiles::yum::puppet7
|
|
||||||
#
|
|
||||||
# To specify a custom base URL:
|
|
||||||
# class { 'profiles::yum::puppet7':
|
|
||||||
# baseurl => 'http://mylocalmirror.com/yum',
|
|
||||||
# }
|
|
||||||
class profiles::yum::puppet7 (
|
|
||||||
Array[String] $managed_repos,
|
|
||||||
String $baseurl = 'http://repos.main.unkin.net/puppet7',
|
|
||||||
) {
|
|
||||||
$releasever = $facts['os']['release']['major']
|
|
||||||
$basearch = $facts['os']['architecture']
|
|
||||||
|
|
||||||
if 'puppet7' in $managed_repos {
|
|
||||||
yumrepo { 'puppet7':
|
|
||||||
name => 'puppet7',
|
|
||||||
descr => 'puppet7 repository',
|
|
||||||
target => '/etc/yum.repos.d/puppet7.repo',
|
|
||||||
baseurl => "${baseurl}/el/${releasever}-daily/${basearch}/os/",
|
|
||||||
gpgkey => 'https://yum.puppet.com/RPM-GPG-KEY-puppet-20250406',
|
|
||||||
#gpgkey => "${baseurl}/el/${releasever}-daily/${basearch}/os/RPM-GPG-KEY-puppet",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
# Class: profiles::yum::unkin
|
|
||||||
class profiles::yum::unkin (
|
|
||||||
Array[String] $managed_repos,
|
|
||||||
String $baseurl,
|
|
||||||
Enum[
|
|
||||||
'daily',
|
|
||||||
'weekly',
|
|
||||||
'monthly'
|
|
||||||
] $snapshot = 'daily',
|
|
||||||
) {
|
|
||||||
$release = $facts['os']['release']['major']
|
|
||||||
$basearch = $facts['os']['architecture']
|
|
||||||
|
|
||||||
if 'unkin' in $managed_repos {
|
|
||||||
yumrepo { 'unkin':
|
|
||||||
name => 'unkin',
|
|
||||||
descr => 'unkin repository',
|
|
||||||
target => '/etc/yum.repos.d/unkin.repo',
|
|
||||||
baseurl => "${baseurl}/${::facts['os']['release']['major']}/${basearch}/os/",
|
|
||||||
gpgcheck => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user