Для полноценной работы с операционной системой или же ОС необходимо своевременно получать обновления, списки нового и старого программного обеспечения или ПО, которое позволит выполнять клиентские или администрирующие задачи.

Если для Windows процесс скачивания обновлений ОС осуществляется, через репозитории, а ПО зачастую скачивается через Web-ресурсы в виде файлов бинарного формата. То взаимодействие в Linux часто ориентировано на использование репозиториев для всех процессов описанных выше. Поэтому важно рассмотреть конфигурацию и безопасную работу с данными решениями.
Что такое репозиторий и как с ним работать?
Репозиторий – это коллекция объектов хранимых на сервере, которая зачастую используется для хранения программного обеспечения и прочих зависимостей необходимых для его работы. Она может быть реализована в виде SFTP-сервера, Web-сервера, а может представлять собой базу данных на платформе контроля версий. Зачастую используется, как точка распространения ПО, а также удобная форма хранения данных для работы команд.

Для работы Linux зачастую используется репозитории, как открытые точки для скачивания и достаточно важно разделить их на два вида: проверенные и непроверенные репозитории. Первые были одобрены разработчиками или сообществом, что имеет меньше вероятности не работающего ПО или наличие программных закладок. Второе необходимо проверять, либо доверять разработчику данной коллекции объектов.
Зачастую необходимо указать URL ссылку откуда будут скачаны пакеты ПО и соответствующий открытый ключ электронной цифровой подписи.
Настройка репозитория на Rocky Linux
Для работы будем использовать две основные директории: /etc/yum.repos.d и /etc/pki/rpm-gpg, как раз именно в них хранятся ссылки на репозитории и ключи ЭЦП соответственно. Данный способ представляет собой ручную настройку репозитория и позволяет контролировать уже существующие. Для добавления новой коллекции перейдем в папку /etc/yum.repos.d и создадим новый файл с конфигурацией для Docker
cd /etc/yum.repos.d && nano docker-ce.repo [docker-ce]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/rhel/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/rhel/gpg
В данном примере первая строка является названием репозитория, как и вторая и может принимать любое значение. Строчка baseurl должна быть корректно составлена с указанием версии вашего дистрибутива RHEL, а также архитектурой процессора обычно используется x86_64. Если вы не знаете точных данных оставьте, как приведено в примере выше – переменные.
Enabled отвечает, за то что репозиторий будет использоваться, при поиске пакетов, а gpgcheck за проверку подписей. Желательно оставить его включенным, во избежания атак человека посередине.
И второй важный компонент во всем файле это путь к ключу, который указывается в формате URL – схемы на локальный файл, либо ссылку на существующий объект репозитория. В варианте представленном выше, как раз ссылка на онлайн-ресурс. Попробуем обновить репозиторий и посмотреть считывает ли ПО пакеты от туда:
dnf upgrade 
Обновление происходит, значит пути установлены верно и репозиторий сконфигурирован корректно.
Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Потребуется некоторое время для развертывания серверных мощностей. После чего вы можете подключиться любым из удобных способов. На основе предлагаемы VPS и VDS серверов, так же можно развернуть уже свою виртуальную инфраструктуру.
Как скачать ключ от репозитория?
Но что если вы не доверяете ресурсу на постоянной основе и хотите каждый раз самостоятельно проверять ключи и обновлять их через Ansible? Для этого можно скачать ключ по ссылке через команду и сразу записать его в директорию с ограниченными правами:
curl https://download.docker.com/linux/rhel/gpg > /etc/pki/rpm-gpg/docker
Данная команда позволит перенаправить вывод от сервера к файлу дальнейшего хранения ключа. И для того, чтобы репозиторий мог проверить предоставляемый ключ укажем его в конфигурации репозиториев строкой gpgkey=file:///etc/pki/rpm-gpg/docker, предварительно закомментировав предыдущую. Теперь проверим работу репозитория, установив пакет docker-ce:
dnf install docker-ce 
В поле Repository можем увидеть список использованных репозиториев для поиска утилиты, а также ее зависимостей, которые будут использованы для установки.
Как удалить репозиторий или отключить его?
Если нам необходимо отключить некоторые репозитории мы можем, как удалить файл конфигурации с ними, так и выключить пунктом enabled. Что выполняется, также в конфигурации файла. К примеру, текущая онлайн-коллекция файлов Docker нам не нужна, обновим ее значение:
sed ‘s/enabled=1/enabled=0’ ./docker-ce.repo 
Данная команда заменила все пункты с =1 на =0 в параметре, который отвечал за использование репозиториев, при поиске. Теперь проверим его работу:
dnf update 
Как видим репозиторий был исключен из списка поиска и не используется для установки или обновления программного обеспечения.