diff --git a/files/create_fedora_repos b/files/create_fedora_repos new file mode 100644 index 0000000000000000000000000000000000000000..3ad51d0b173725f7e5a0f86e8bfb9774bc3cb80a --- /dev/null +++ b/files/create_fedora_repos @@ -0,0 +1,14 @@ +#!/bin/bash +mapfile -t versions < <(curl https://fedoraproject.org/releases.json | jq -r '[ .[] | select(.arch == "x86_64" and .variant == "Workstation") | .version ] | unique | .[]') +arches=(x86_64) + +for v in "${versions[@]}"; do + for arch in "${arches[@]}"; do + d="/srv/repos/fedora/${v}/${arch}" + if ! [ -d "$d" ]; then + mkdir -p "$d" + fi + done +done + +/usr/local/bin/lysator_update_yum_repos_cron diff --git a/manifests/yum_repository.pp b/manifests/yum_repository.pp index 3bdbd4661459154f28ccf9c2f06a3891cb6fda9f..0e785326ff70043848f3d00527ebeed32053c93e 100644 --- a/manifests/yum_repository.pp +++ b/manifests/yum_repository.pp @@ -34,6 +34,23 @@ class repomaster::yum_repository # contains chronic, required by lysator_update_yum_repos_cron ensure_packages(['moreutils']) + # automatically create repos for new fedora versions as they are released + ensure_packages(['jq']) + file { '/usr/local/bin/create_fedora_repos': + ensure => file, + source => "puppet:///modules/repomaster/create_fedora_repos", + owner => root, + group => root, + mode => '0555', + } + cron { 'create_fedora_repos': + command => '/usr/local/bin/create_fedora_repos', + user => root, + weekday => 6, + hour => 6, + minute => 15, + } + file { '/usr/local/bin/lysator_update_yum_repos_cron': ensure => file, source => "puppet:///modules/repomaster/lysator_update_yum_repos_cron",