From 0ae12f2440a785815e248c066857fd624530f586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20L=C3=B6nnemark?= <tobbez@ryara.net> Date: Tue, 17 Dec 2024 01:01:43 +0100 Subject: [PATCH] Automatically create repositories for new Fedora releases --- files/create_fedora_repos | 14 ++++++++++++++ manifests/yum_repository.pp | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 files/create_fedora_repos diff --git a/files/create_fedora_repos b/files/create_fedora_repos new file mode 100644 index 0000000..3ad51d0 --- /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 3bdbd46..0e78532 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", -- GitLab