Поиск по сайту:

Как настроить локальный репозиторий HTTP Yum в CentOS 7


Репозиторий программного обеспечения (сокращенно репо) — это центральное хранилище файлов для хранения и обслуживания пакетов программного обеспечения, из которого пользователи могут извлекать пакеты и устанавливать их на свои компьютеры.

Репозитории часто хранятся на серверах в сети, например в Интернете, к которым могут иметь доступ несколько пользователей. Однако вы можете создать и настроить локальный репозиторий на своем компьютере и получить к нему доступ как один пользователь или разрешить доступ другим компьютерам в вашей LAN (Локальная сеть).

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

YUM (Yellowdog Updater Modified) — это широко используемый инструмент управления пакетами для RPM (RedHat Package Manager) на базе систем Linux, который упрощает установку программного обеспечения в Red Hat. /CentOS Linux.

В этой статье мы объясним, как настроить локальный репозиторий YUM через веб-сервер HTTP (Nginx) на CentOS 7 VPS. , а также покажет, как найти и установить пакеты программного обеспечения на клиентских компьютерах с CentOS 7.

Наша среда тестирования

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Шаг 1. Установите веб-сервер Nginx

1. Сначала начните с установки HTTP-сервера Nginx из репозитория EPEL с помощью менеджера пакетов YUM следующим образом.

yum install epel-release
yum install nginx 

2. После установки веб-сервера Nginx вы можете запустить его в первый раз и включить его автоматический запуск при загрузке системы.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Далее вам необходимо открыть порты 80 и 443, чтобы разрешить веб-трафик службе Nginx, обновить правила системного брандмауэра, чтобы разрешить входящие пакеты. на HTTP и HTTPS, используя приведенные ниже команды.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

4. Теперь вы можете убедиться, что ваш сервер Nginx запущен и работает, используя следующий URL-адрес; если вы видите веб-страницу Nginx по умолчанию, все в порядке.

http://SERVER_DOMAIN_NAME_OR_IP 

Шаг 2. Создайте локальный репозиторий Yum

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

yum install createrepo  yum-utils

6. Далее создайте необходимые каталоги (репозитории yum), в которых будут храниться пакеты и любая связанная с ними информация.

mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Затем используйте инструмент reposync для синхронизации репозиториев CentOS YUM с локальными каталогами, как показано.

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Пример вывода
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

В приведенных выше командах опция:

  • -g — включает удаление пакетов, не прошедших проверку подписи GPG, после загрузки.
  • -l — включает поддержку плагина yum.
  • -d — включает удаление локальных пакетов, которых больше нет в репозитории.
  • -m – включает загрузку файлов comps.xml.
  • --repoid — указывает идентификатор репозитория.
  • --newest-only — укажите reposync, чтобы он извлекал только последнюю версию каждого пакета в репозиториях.
  • --download-metadata — позволяет загружать все метаданные, отличные от стандартных.
  • --download_path — указывает путь для загрузки пакетов.

8. Затем проверьте содержимое ваших локальных каталогов, чтобы убедиться, что все пакеты синхронизированы локально.

ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

9. Теперь создайте новые реподаты для локальных репозиториев, выполнив следующие команды, где флаг -g используется для обновления информации о группе пакетов с использованием указанного .xml файл.

createrepo -g comps.xml /var/www/html/repos/base/  
createrepo -g comps.xml /var/www/html/repos/centosplus/	
createrepo -g comps.xml /var/www/html/repos/extras/  
createrepo -g comps.xml /var/www/html/repos/updates/  

10. Чтобы включить просмотр репозиториев и пакетов в них через веб-браузер, создайте блок сервера Nginx, который указывает на корень ваших репозиториев, как показано.

vim /etc/nginx/conf.d/repos.conf 

Добавьте следующую конфигурацию в файл repos.conf.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Сохраните файл и закройте его.

11. Затем перезапустите сервер Nginx и просмотрите репозитории в веб-браузере, используя следующий URL-адрес.

http://repos.test.lab

Шаг 3. Создайте задание Cron для синхронизации и создания репозиториев

12. Затем добавьте задание cron, которое будет автоматически синхронизировать ваши локальные репозитории с официальными репозиториями CentOS для получения обновлений и исправлений безопасности.

vim /etc/cron.daily/update-localrepos

Добавьте эти команды в скрипт.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

Сохраните скрипт, закройте его и установите для него соответствующие разрешения.

chmod 755 /etc/cron.daily/update-localrepos

Шаг 4. Настройка локального репозитория Yum на клиентских компьютерах

13. Теперь на своих клиентских компьютерах CentOS добавьте локальные репозитории в конфигурацию YUM.

vim /etc/yum.repos.d/local-repos.repo

Скопируйте и вставьте приведенную ниже конфигурацию в файл local-repos.repo (при необходимости внесите изменения).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

Сохраните файл и начните использовать локальные зеркала YUM.

14. Затем выполните следующую команду, чтобы просмотреть ваши локальные репозитории в списке доступных репозиториев YUM на клиентских компьютерах.

 yum repolist
OR
yum repolist all

Вот и все! В этой статье мы объяснили, как настроить локальный репозиторий YUM в CentOS 7. Мы надеемся, что это руководство оказалось для вас полезным. Если у вас есть какие-либо вопросы или другие мысли, которыми вы хотите поделиться, воспользуйтесь формой комментариев ниже.