Создание локальной копии репозитория пакетов main и updates в REDOS и CENTOS

Оцените статью

Так как наш проект по внедрению REDOS перешел в Production-фазу, то как я уже говорил мы работаем в закрытом контуре без доступа в интернет. Следовательно для установки програмного обеспечения и обновлений нам необходимо развернуть собственный пакетный репозитарий.

Установка необходимого программного обеспечения.

Нам понадобиться собственно утилиты для клонирования репозитария и веб-сервер Apache.

# dnf install httpd createrepo yum-utils
# dnf install mod_ssl

Клонирование официальных репозиториев локально

Доступ в интернет с этого сервера разрешен только на врема обновления репозиториев и с использованием HTTP-прокси. Поэтому модифицируем наши официальные репозитории REDOS на использование HTTP Proxy.

Репозиторий Base — /etc/yum.repos.d/RedOS-Base.repo.

[base]
proxy=http://10.54.32.54:3128
name=RedOS - Base
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
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1

Репозиторий Updates — /etc/yum.repos.d/RedOS-Updates.repo.

[updates]
proxy=http://10.54.32.54:3128
name=RedOS - Updates
baseurl=https://repo1.red-soft.ru/redos/8.0/$basearch/updates,https://mirror.yandex.ru/redos/8.0/$basearch/updates,http://repo.red-soft.ru/redos/8.0/$basearch/updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1

Создаем каталоги куда будем сохранять наши репозитарии.

# mkdir -p /opt/repo/base/
# mkdir -p /opt/repo/updates/

Создаем локальные клоны репозитариев.

# reposync --repoid=base --downloadcomps --download-metadata --norepopath -p=/opt/repo/base/
# reposync --repoid=updates --downloadcomps --download-metadata --norepopath -p=/opt/repo/updates/

После загрузки репозиториев создаем метаданные.

# createrepo -v /opt/repo/base/ -g comps.xml
# createrepo -v /opt/repo/updates/ -g comps.xml

Обязательно проверьте общий объем репозитария и убедитесь, что у вас достаточно места на диске. Клонирование занимает довольно много времени в связи с большим объемом репозитария.

# dnf repoinfo base | grep «Размер репозитория»
Размер репозитория         : 99 G
# dnf repoinfo updates | grep «Размер репозитория»
Размер репозитория         : 209 G

Настройка WEB-сервера для предоставления доступа к репозитариям для клиентов

Прежде всего вводим наш сервер обновлений в FreeIPA-домен. Таким образом мы зададим ему обновляемое доменное имя в рамках домена и выпустим сертификат сервера для HTTP-сервера.

Повторяться не буду и просто оставлю ссылки на заметки:

И теперь нам осталось сконфигурировать WEB-сервер Apache для предоставления досупа к репозитарию и простейшем виде конфигурация виртуального хоста будет выглядеть следующим образом (/etc/httpd/conf.d/rrepo01-vm-nux.ipa.sngp.su.conf).

<VirtualHost *:80>
    ServerName rrepo01-vm-nux.ipa.sngp.su
    RewriteEngine on
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName rrepo01-vm-nux.ipa.sngp.su
        DocumentRoot /opt/repo/
        SSLEngine on
        SSLCertificateFile /etc/httpd/ssl/rrepo01-vm-nux.ipa.sngp.su.crt
        SSLCertificateKeyFile /etc/httpd/ssl/rrepo01-vm-nux.ipa.sngp.su.key
    </VirtualHost>
</IfModule>

<Directory "/opt/repo/">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Настраиваем права доступа и запускаем сервис.

# systemctl start httpd
# systemctl enable httpd
# chown apache:apache /opt/repo/

Создаем скрипт для обновления репозитариев и перестроения базы метаданных репозитария (/usr/local/bin/repo_update.sh).

#!/bin/sh

reposync --repoid=base --downloadcomps --download-metadata --norepopath -p=/opt/repo/base/
createrepo -v /opt/repo/base/ -g comps.xml

reposync --repoid=updates --downloadcomps --download-metadata --norepopath -p=/opt/repo/updates/
createrepo -v /opt/repo/updates/ -g comps.xml

Настройка клиента для использования локального хранилища репозиториев REDOS

В моем случае я сделал единый файл конфигурации для base и update следующего вида (/etc/yum.repos.d/RedOS-LOCAL.repo).

[base]
name=RedOS - Base
baseurl=https://rrepo01-vm-nux.ipa.sngp.su/base
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1

[updates]
name=RedOS - Updates
baseurl=https://rrepo01-vm-nux.ipa.sngp.su/updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1

Похожие записи

Топ-9 нейросетей для генерации изображений в 2026 году

Когда я решил побаловаться и поиграть с AI генераторами изображений я и не знал что их так много и раз уж начал веселиться, то поздно останавливаться. Я подготовил для вас…

Настройка взаимодействия RED ADM и Windows Active Directory

Сегодня проведем несколько экспериментов по настройке взаимодействия RED ADM и Windows Active Directory. Есть несколько способов настройки доверия для упрощения миграции с решений Microsoft на Российское ПО и сегодня их…

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

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

Читать еще статьи

Топ-9 нейросетей для генерации изображений в 2026 году

Топ-9 нейросетей для генерации изображений в 2026 году

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker