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

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

Пакетные менеджеры

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

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

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

YUM (Yellowdog Updater Modified) — широко используемый инструмент управления пакетами для Linux-систем RPM (RedHat Package Manager), который упрощает установку программного обеспечения на 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

 

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

 

 

Шаг 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

 

View-Local-Yum-Repositories

 

 

Шаг 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

 

 

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

 

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

# yum repolist

 

Или же:

# yum repolist all

 

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

 

 

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Пакетные менеджеры

Больше похожих постов

Linuxbrew-–-The-Homebrew-Package-Manager-for-Linux

Linuxbrew — диспетчер пакетов Homebrew для Linux

650
0
Linuxbrew — это клон homebrew, менеджер пакетов MacOS, для Linux, который позволяет пользователям устанавливать программное обеспечение в свой домашний каталог. Он…
How-to-Manage-Snaps-in-Linux-–-Part-2

Как управлять Snaps в Linux — часть 2

520
0
Это вторая статья в серии статей о Snaps в Linux. В ней рассказывается, как запускать снапшоты из интерфейса командной строки,…

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню