Как создать локальный репозиторий Red Hat
На этой странице
- Установите пакеты, необходимые для репозиториев.
- Создайте каталоги для своих репозиториев.
- Полезные команды
- Синхронизировать репозитории
- Команда создания репозитория
- Настройка клиентских серверов
- Создайте сценарий и задание Cron для обновления ваших репозиториев
- Заключительные мысли
- Источники
Есть много причин, по которым вам может понадобиться локальный репозиторий Red Hat Enterprise Linux. Пропускная способность является основным фактором, поскольку загрузка обновлений из Интернета может занимать много времени и пропускной способности. Другая причина может заключаться в том, что ваши серверы не подключены к Интернету и поэтому должны получать обновления из локального источника. У вас может быть среда разработки, для которой вы бы предпочли не тратить деньги на лицензии, но которую все же необходимо обновить. Какой бы ни была ваша причина, это руководство проведет вас через процесс настройки вашего локального репозитория. ;var slotId=div-gpt-ad-howtoforge_com-box-3-0;var ffid=1;var alS=1002%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document.createElement(ins);ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins. набор данных.fullWidthResponsive=true;}
Примечание. Сервер, который служит вашим репозиторием, должен служить только репозиторием.
Установите пакеты, необходимые для репозиториев
yum install yum-utils createrepo httpd
Создайте каталоги для ваших репозиториев
mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc
Полезные команды
Перечислите репозитории на вашем сервере как включенные, так и отключенные.
yum repolist all
Перечислите репозитории, доступные по вашей подписке
subscription-manager repos --list
Включите репозиторий в вашей системе
subscription-manager repos --enable=rhel-6-server-optional-rpms
Отключить репозиторий в вашей системе
subscription-manager repos --disble=rhel-6-server-optional-rpms
Мы хотим, чтобы репозитории server, dts и rhsc (коллекции программного обеспечения) были включены в репозиторий.
Синхронизировать репозитории
После того, как все эти репозитории были включены, выполните следующую команду для всех из них, изменив путь загрузки для каждого, чтобы он соответствовал пути загрузки для этого репозитория.
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
Команда создания репозитория
После загрузки пакетов все, что необходимо, — это команда createrepo ниже для каждого репо.
createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml
Настройка клиентских серверов
Теперь у вас есть локальный репозиторий, но вам нужно внести некоторые изменения на ваши серверы Red Hat, которые будут использовать эти репозитории для обновлений.
Сначала убедитесь, что для всех других репозиториев флаг Enabled установлен на 0 (ноль) в файле репо в /etc/yum.repos.d. Я бы не стал удалять репозитории на данный момент, потому что они могут вам понадобиться позже. Достаточно просто изменить включенный флаг.
Теперь вам нужно создать файл .repo, который будет добавлен в каталог /etc/yum.repos.d на каждом сервере, использующем репозитории. Этот файл должен быть похож на следующий файл.
vi /etc/yum.repos.d/name_of_repo_file.repo
[server] name = rhel-6-server-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/server gpgcheck = 0 enabled = 1 [dts] name = rhel-server-dts-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts gpgcheck = 0 enabled = 1 [dts2] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1 [rhsc] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1
Создайте скрипт и задание Cron для обновления ваших репозиториев
Создайте скрипт с именем update-repository.sh и поместите его в /usr/local/bin со следующим содержимым:
vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/server/ reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts/ \\ reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts2/ echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh
Создайте файл в /etc/cron.d и назовите его update-repository со следующим содержимым.
vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh
Последние мысли
Есть много разных способов настроить локальный репозиторий, и я, конечно, не изобретал велосипед в этом случае. Обратитесь к моим источникам ниже для получения дополнительной информации и понимания вашей установки.
Источники
- https://linux-console.net/creating_a_local_yum_repository_centos