Зеркало репозиториев для закрытого контура на RedOs и других el8/9 системах

Создавать зеркало буду на примере ОС RedOs 8 В качестве веб-сервера будем использовать nginx. Предварительная подготовка сервера Действия выполняются от имени пользователя root: Настройка web-службы NGINX: 1- Перезагрузка конфига: В подразделе Настройка на клиентском ПК приводится информация о настройке клиентского ПК — с изменением адреса в файлах .repo. Можно добавить запись repo.red-soft.ru = в ваш…


Создавать зеркало буду на примере ОС RedOs 8

В качестве веб-сервера будем использовать nginx.


Предварительная подготовка сервера

Действия выполняются от имени пользователя root:

su -
  • Установите необходимые пакеты:
dnf install nginx createrepo yum-utils

Настройка web-службы NGINX:

  • Создайте конфигурацию для репозитория:
vi /etc/nginx/conf.d/repo.conf
  • Добавьте в файл следующий блок:
server {
    listen       80;
    server_name  localhost;
    root         /var/www/html;

    location / {
        autoindex on;         # Включить листинг каталогов
        index  index.html;
    }
}
  • Проверьте конфигурацию:
nginx -t
  • Если требуется SSI (Server Side Includes), добавьте в секцию location /:
ssi on;

  • Добавьте в автозагрузку и запустите nginx:
systemctl enable nginx --now

1- Перезагрузка конфига:

   systemctl reload nginx

В подразделе Настройка на клиентском ПК приводится информация о настройке клиентского ПК — с изменением адреса в файлах .repo.

Можно добавить запись repo.red-soft.ru = в ваш DNS-сервер. В этом случае менять конфигурацию на клиенте не потребуется.

ВАЖНО!
Для создания локальных репозиториев Base, Updates, Kernels и Kernels6 необходимо предварительно убедиться, что у вас есть необходимый объем требуемого свободного дискового пространства.

Для получения информации о необходимом объеме для какого-либо определенного репозитория выполните команду:

dnf repoinfo <название_репозитория> | grep "Размер репозитория"

Чтобы узнать более точный размер всех подключенных репозиториев, можно воспользоваться командой:

dnf repoinfo | grep "Repo-size" | awk -F ':' '{size = $2; sub(/M$/, "", size); if (index($2, "M") > 0) total += size / 1024; else total += size} END {printf "Общий вес \033[41mвсех подключенных\033[0m репозиториев: %.2f G\n", total}'

Зеркало для репозитория РЕД ОС 7.3 стандартной редакции
Создайте запись для репозитория в каталоге /etc/yum.repos.d/.

nano /etc/yum.repos.d/red.os.8.repo

с содержимым:

RedOS-Standard.repo

[base]
name=RedOS Standard - Base 8.0
baseurl=https://repo1.red-soft.ru/redos/8.0/$basearch/os,https://mirror.yandex.ru/redos/8.0/$basearch/os,http://repo.red-soft.ru/redos/8.0/$basearch/os
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT

Для размещения репозиториев можно использовать каталог, отличный от /var/www/html/, создав для него символическую ссылку и установив правильный контекст SELinux (для файловых систем с поддержкой Extended File Attributes — ext2, ext3, ext4, jfs, xfs, btrfs):

ln -s /mnt/repo/ /var/www/html/
semanage fcontext -a -t httpd_sys_content_t "/mnt/repo(/.*)?"
restorecon -Rv /mnt/repo/

Здесь в качестве примера используется каталог /mnt/repo/. Обратите внимание, что для пользователя или группы apache файлы и каталоги в директории репозитория должны быть доступны для чтения. Управление правами доступа подробно описано в статье «Настройка прав доступа к файлам и каталогам». Восстановление прав и контекста SELinux командой restorecon необходимо произвести после создания репозитория (createrepo).

Создайте каталог для репозиториев:

mkdir -p /var/www/html/repo/red-os-8
cd /var/www/html/repo/red-os-8

Запустите процедуру создания зеркала репозитория-источника. Начнется загрузка пакетов репозитория. Обратите внимание, что на машине должен быть доступ к сети Интернет.

reposync --repoid=base --downloadcomps --download-metadata

В окне терминала выполните следующую команду:

createrepo -v /var/www/html/repo/red-os-8/base -g comps.xml
createrepo -v /var/www/html/repo/luxms-bi11/repodata

Восстановите контекст SELinux каталога, в котором находится репозиторий. Например, при расположении репозитория в каталоге /var/www/html/repo/ необходимо выполнить:

restorecon -Rv /var/www/html/repo/

Команда restorecon не следует по символическим ссылкам, поэтому необходимо указывать прямой путь до каталога с репозиторием.

Добавим правило в Firewalld

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Репозиторий для РЕД ОС 8 стандартной редакции готов.

Для репозитория updates и kernels команду createrepo запустите без параметра -g comps.xml.

Еще потребовалось добавить пару пакетов — clickhouse, репозиторий большой, поэтому добавим только нужные пакеты в один из созданных

Пошаговая инструкция:


  • Поместим пакет clickhouse-server-24.8.14.39.x86_64.rpm в директорию репозитория:
sudo cp test1.rpm /var/www/html/repo/luxms-thirdparty/Packages/  # Если папки Packages нет — создайте её

  • Обновим метаданные репозитория:
sudo createrepo --update /var/www/html/repo/luxms-thirdparty/

Пояснение:
Флаг --update добавляет только новый пакет, не пересоздавая репозиторий полностью.


  • Проверим доступность пакета через веб:
    Откройте в браузере:
http://IP_СЕРВЕРА/repo/luxms-thirdparty/Packages/clickhouse-server-24.8.14.39.x86_64.rpm

  • На клиентских машинах обновим кеш репозиториев:
sudo dnf clean all
sudo dnf makecache

  • Убедитесь, что пакет виден в репозитории:
sudo dnf list clickhouse-server-24.8.14.39

RedOS.repo

[base]
name=RedOS Cert - Base
baseurl=http://192.168.0.1/repo/redos8.0/base8.0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT

В иных репозиториях, которые находятся по пути /etc/yum.repos.d/, измените значение параметра enabled на enabled=0 (если такого значения в файлах нет, впишите его самостоятельно), чтобы не возникало конфликтов.

ВАЖНО!
Настройка обращения к локальным репозиториям Base и Updates может быть осуществлена двумя способами:

созданием собственных файлов репозиториев;

редактированием файлов репозиториев, используемых по умолчанию.

При создании собственных файлов локальных репозиториев не рекомендуется удалять имеющиеся файлы репозиториев по умолчанию (RedOS-Base.repo, RedOS-Updates.repo) – их необходимо отключить, изменив значение параметра enabled=1 на enabled=0! Иначе при обновлении системы данные файлы вновь появятся в каталоге /etc/yum.repos.d/.

В случае если были изменены и настроены файлы репозиториев по умолчанию (RedOS-Base.repo, RedOS-Updates.repo), после обновления системы в каталоге /etc/yum.repos.d/ будут сохранены новые файлы расширением .rpmnew – они являются резервной копией стандартных конфигурационных файлов и не повлияют на текущую настройку локальных репозиториев, удалять их не рекомендуется.

Обновите информацию о репозиториях, для этого выполните следующие команды:

dnf makecache 
dnf update


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *