Создание локальной копии репозитория пакетов 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

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

Установка Bitrix 24 (Centos 9 на хостинге Selectel)

Сегодня мы рассмотрим процесс установки и базовой настройки коробочной версии Bitrix 24 на Centos 9, хостинг будем использовать Selectel так-как у меня там еще осталось немного от гранта. Создание виртуальной…

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

По старой схеме продолжаем проект по миграции на отечественное ПО, а именно на RedOS и сегодня настроим интеграцию Gitea и Concourse c доменом FreeIPA. Настройки Gitea для авторизации при помощи…

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

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

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

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

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

Установка Bitrix 24 (Centos 9 на хостинге Selectel)

Установка Bitrix 24 (Centos 9 на хостинге Selectel)

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

Шпаргалка по основным командам консоли Ubuntu Linux

Шпаргалка по основным командам консоли Ubuntu Linux

Интеграция Grafana и FreeIPA (авторизация при помощи учетных данных IPA-домена)

Интеграция Grafana и FreeIPA (авторизация при помощи учетных данных IPA-домена)

Linux синхронизация времени (Установка настройка и диагностика chrony)

Linux синхронизация времени (Установка настройка и диагностика chrony)