Русский
Русский
English
Статистика
Реклама

Rpm-gpg-repository-mirroring Скрипт для скачивания RPM пакетов из репозиториев, для которых нельзя сделать RPM зеркало

В некоторых организациях с серверов нет доступа в интернет. В таких случаях делают зеркала основных репозиториев.
Но что делать, если доступ с серверов ограничен, а нужные rpm пакеты нужно установить? Обычно используют скачивают reposync или скачивают руками и делают локальный репозиторий.
Также можно добавить репозиторий, который будет ходить в интернет через прокси сервер. На проски сервер может быть большая нагрузка.
Но можно использовать скрипт rpm-gpg-repository-mirroring, который скачает нужные rpm пакеты и сделает локальное зеркало.


Цель данного поста рассказать о скрипте, который скачивает последние версии rpm пакетов из репозиториев Grafana, Kubernetes, Gitlab, packagecloud.io и так далее.


Какие преимущества использования скрипта перед reposync


  • rpm-gpg-repository-mirroring может скачивать все rpm пакеты, начиная с определенной версии
  • rpm-gpg-repository-mirroring может скачивать последние N версий rpm пакетов
  • rpm-gpg-repository-mirroring значительно экономит трафик в сравнении с reposync
  • rpm-gpg-repository-mirroring значительно экономит дисковое пространство в сравнении с reposync
  • rpm-gpg-repository-mirroring скачивает последнюю версию в отличие от репозиториев, которые созданы руками и rpm были добавлены руками

Исходный код


https://github.com/patsevanton/rpm-gpg-repository-mirroring


Выключаем Selinux


sudo sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/configsudo reboot

Установка и запуск rpm-gpg-repository-mirroring (epel-release нужен для nginx)


yum install -y epel-releaseyum -y install yum-plugin-copryum copr enable antonpatsev/rpm-gpg-repository-mirroringyum -y install rpm-gpg-repository-mirroring

Настройка rpm-gpg-repository-mirroring


Редактируем файл /etc/rpm-gpg-repository-mirroring.conf
В нем все подробно описано.


Репозиторий, с которого нужно скачать все последние rpm пакеты начиная с определенной версии. Пример Grafana


Создадим /etc/yum.repos.d/grafana.repo со следующим содержимым:


[grafana]name=grafanabaseurl=https://packages.grafana.com/oss/rpmrepo_gpgcheck=0enabled=1gpgcheck=0gpgkey=https://packages.grafana.com/gpg.keysslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crt

Конфиг /etc/rpm-gpg-repository-mirroring.conf:


# Директория, в которых будут создаваться rpm репозиторииDOWNLOAD_DIR=/var/www/repos# репозитории, rpm которых будут скачиваться начиная с определенной версии, указаной в значенииREPOS={"grafana":"6.5.3"}

Запускаем скрипт


rpm-gpg-repository-mirroring

После запуска скрипта в директории /var/www/repos должна появится директория grafana, содержащая rpm репозиторий.


ls -1 /var/www/repos/grafana/
grafana-6.5.3-1.x86_64.rpmgrafana-6.6.0-1.x86_64.rpmgrafana-6.6.1-1.x86_64.rpmgrafana-6.6.2-1.x86_64.rpmgrafana-6.7.0-1.x86_64.rpmgrafana-6.7.0-test.x86_64.rpmgrafana-6.7.1-1.x86_64.rpmgrafana-6.7.2-1.x86_64.rpmgrafana-6.7.3-1.x86_64.rpmgrafana-6.7.4-1.x86_64.rpmgrafana-7.0.0-1.x86_64.rpmgrafana-7.0.1-1.x86_64.rpmgrafana-7.0.2-1.x86_64.rpmgrafana-7.0.3-1.x86_64.rpmrepodata

Репозиторий, с которого нужно скачать все последние rpm пакеты начиная с определенной версии + N последних версий определенных rpm пакетов. Пример Kubernetes


Создадим /etc/yum.repos.d/kubernetes.repo со следующим содержимым:


[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=0gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg# c опцией repo_gpgcheck=1 скрипт выдает ошибку: repomd.xml signature could not be verified for kubernetes

Конфиг /etc/rpm-gpg-repository-mirroring.conf:


# Директория, в которых будут создаваться rpm репозиторииDOWNLOAD_DIR=/var/www/repos# репозитории, rpm которых будут скачиваться начиная с определенной версии, указаной в значенииREPOS={"kubernetes":"1.17.6"}# Для всех репозиторией, в которых есть rpm-пакет, совпадающий с ключом, необходимо скачать последние N версии этих rpm пакетов.# Где N указывается в значении.CUT_AFTER={"rkt":2,"kubernetes-cni":2,"cri-tools":2}

После запуска скрипта в директории /var/www/repos должна появится директория kubernetes, содержащая rpm репозиторий.


ls -1 /var/www/repos/kubernetes/
cri-tools-1.12.0-0.x86_64.rpmcri-tools-1.13.0-0.x86_64.rpmkubeadm-1.17.6-0.x86_64.rpmkubeadm-1.17.7-0.x86_64.rpmkubeadm-1.18.0-0.x86_64.rpmkubeadm-1.18.1-0.x86_64.rpmkubeadm-1.18.2-0.x86_64.rpmkubeadm-1.18.3-0.x86_64.rpmkubeadm-1.18.4-0.x86_64.rpmkubectl-1.17.6-0.x86_64.rpmkubectl-1.17.7-0.x86_64.rpmkubectl-1.18.0-0.x86_64.rpmkubectl-1.18.1-0.x86_64.rpmkubectl-1.18.2-0.x86_64.rpmkubectl-1.18.3-0.x86_64.rpmkubectl-1.18.4-0.x86_64.rpmkubelet-1.17.6-0.x86_64.rpmkubelet-1.17.7-0.x86_64.rpmkubelet-1.18.0-0.x86_64.rpmkubelet-1.18.1-0.x86_64.rpmkubelet-1.18.2-0.x86_64.rpmkubelet-1.18.3-0.x86_64.rpmkubelet-1.18.4-0.x86_64.rpmkubernetes-cni-0.6.0-0.x86_64.rpmkubernetes-cni-0.7.5-0.x86_64.rpmrepodatarkt-1.26.0-1.x86_64.rpmrkt-1.27.0-1.x86_64.rpm

Репозиторий, с которого нужно скачать N последних версий определенных rpm пакетов. Пример Prometheus


Создадим /etc/yum.repos.d/prometheus.repo со следующим содержимым:


[prometheus-7]name=prometheusbaseurl=https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearchrepo_gpgcheck=0enabled=1gpgkey=https://packagecloud.io/prometheus-rpm/release/gpgkey       https://raw.githubusercontent.com/lest/prometheus-rpm/master/RPM-GPG-KEY-prometheus-rpmgpgcheck=1metadata_expire=300

Конфиг /etc/rpm-gpg-repository-mirroring.conf:


# Директория, в которых будут создаваться rpm репозиторииDOWNLOAD_DIR=/var/www/repos# ключ - репозиторий. значение: количество последних версий, которые необходимо скачать-для-всех-rpm-пакетов-в-репозитории.# Пример: Для репозитория prometheus-7 нужно скачать последние 4 версии rpm пакетов.#NUMBER_PACKAGE_IN_REPO={"prometheus-7":4}

После запуска скрипта в директории /var/www/repos должна появится директория prometheus-7, содержащая rpm репозиторий.


ls -1 /var/www/repos/prometheus-7/
alertmanager-0.19.0-2.el7.centos.x86_64.rpmalertmanager-0.20.0-2.el7.centos.x86_64.rpmalertmanager-0.20.0-2.el7.x86_64.rpmalertmanager-0.21.0-2.el7.x86_64.rpmapache_exporter-0.7.0-1.el7.centos.x86_64.rpmapache_exporter-0.8.0-1.el7.x86_64.rpmbind_exporter-0.3.0-1.el7.centos.x86_64.rpmbind_exporter-0.3.0-1.el7.x86_64.rpmblackbox_exporter-0.16.0-1.el7.centos.x86_64.rpmblackbox_exporter-0.16.0-1.el7.x86_64.rpmcollectd_exporter-0.4.0-1.el7.centos.x86_64.rpmcollectd_exporter-0.4.0-1.el7.x86_64.rpmconsul_exporter-0.4.0-1.el7.centos.x86_64.rpmconsul_exporter-0.6.0-1.el7.centos.x86_64.rpmconsul_exporter-0.6.0-1.el7.x86_64.rpmconsul_exporter-0.7.0-1.el7.x86_64.rpmelasticsearch_exporter-1.0.1-1.el7.centos.x86_64.rpmelasticsearch_exporter-1.0.2-1.el7.centos.x86_64.rpmelasticsearch_exporter-1.1.0-1.el7.centos.x86_64.rpmelasticsearch_exporter-1.1.0-1.el7.x86_64.rpmexporter_exporter-0.3.0-2.el7.centos.x86_64.rpmexporter_exporter-0.3.0-2.el7.x86_64.rpmexporter_exporter-0.4.0-0.el7.x86_64.rpmexporter_exporter-0.4.0-1.el7.x86_64.rpmgraphite_exporter-0.4.2-1.el7.centos.x86_64.rpmgraphite_exporter-0.6.2-1.el7.centos.x86_64.rpmgraphite_exporter-0.6.2-1.el7.x86_64.rpmgraphite_exporter-0.7.0-1.el7.x86_64.rpmhaproxy_exporter-0.10.0-1.el7.centos.x86_64.rpmhaproxy_exporter-0.10.0-1.el7.x86_64.rpmiperf3_exporter-0.1.2-1.el7.x86_64.rpmiperf3_exporter-0.1.3-1.el7.x86_64.rpmjmx_exporter-0.12.0-1.el7.centos.noarch.rpmjolokia_exporter-1.3.1-1.el7.x86_64.rpmjunos_exporter-0.9.6-1.el7.x86_64.rpmjunos_exporter-0.9.6-2.el7.x86_64.rpmkeepalived_exporter-0.4.0-1.el7.x86_64.rpmkeepalived_exporter-0.4.0-2.el7.x86_64.rpmmemcached_exporter-0.6.0-1.el7.centos.x86_64.rpmmemcached_exporter-0.6.0-1.el7.x86_64.rpmmysqld_exporter-0.10.0-1.el7.centos.x86_64.rpmmysqld_exporter-0.11.0-1.el7.centos.x86_64.rpmmysqld_exporter-0.12.1-1.el7.centos.x86_64.rpmmysqld_exporter-0.12.1-1.el7.x86_64.rpmnginx_exporter-0.4.1-1.el7.centos.x86_64.rpmnginx_exporter-0.4.1-1.el7.x86_64.rpmnginx_exporter-0.7.0-1.el7.x86_64.rpmnginx_exporter-0.8.0-1.el7.x86_64.rpmnode_exporter-1.0.0-1.el7.x86_64.rpmnode_exporter-1.0.1-1.el7.x86_64.rpmping_exporter-0.4.6-1.el7.centos.x86_64.rpmping_exporter-0.4.6-1.el7.x86_64.rpmprocess_exporter-0.5.0-1.el7.centos.x86_64.rpmprocess_exporter-0.5.0-1.el7.x86_64.rpmprocess_exporter-0.6.0-1.el7.x86_64.rpmprocess_exporter-0.6.0-2.el7.x86_64.rpmprometheus-1.8.0-1.el7.centos.x86_64.rpmprometheus-1.8.1-1.el7.centos.x86_64.rpmprometheus-1.8.2-1.el7.centos.x86_64.rpmprometheus-1.8.2-1.el7.x86_64.rpmprometheus2-2.18.1-1.el7.x86_64.rpmprometheus2-2.18.2-1.el7.x86_64.rpmprometheus2-2.19.0-1.el7.x86_64.rpmprometheus2-2.19.1-1.el7.x86_64.rpmpushgateway-1.2.0-1.el7.x86_64.rpmrabbitmq_exporter-0.26.0-1.el7.centos.x86_64.rpmrabbitmq_exporter-0.28.0-1.el7.centos.x86_64.rpmrabbitmq_exporter-0.28.0-1.el7.x86_64.rpmredis_exporter-1.3.5-1.el7.centos.x86_64.rpmredis_exporter-1.3.5-1.el7.x86_64.rpmredis_exporter-1.6.0-1.el7.x86_64.rpmredis_exporter-1.8.0-1.el7.x86_64.rpmrepodatasachet-0.0.8-1.el7.centos.x86_64.rpmsachet-0.2.0-1.el7.centos.x86_64.rpmsachet-0.2.0-1.el7.x86_64.rpmsachet-0.2.3-1.el7.x86_64.rpmsachet-debuginfo-0.2.0-1.el7.centos.x86_64.rpmsachet-debuginfo-0.2.0-1.el7.x86_64.rpmsmokeping_prober-0.3.0-1.el7.centos.x86_64.rpmsmokeping_prober-0.3.0-1.el7.x86_64.rpmssl_exporter-0.6.0-1.el7.centos.x86_64.rpmssl_exporter-0.6.0-1.el7.x86_64.rpmssl_exporter-1.0.0-1.el7.x86_64.rpmssl_exporter-1.0.1-1.el7.x86_64.rpmstatsd_exporter-0.13.0-1.el7.centos.x86_64.rpmstatsd_exporter-0.14.1-1.el7.centos.x86_64.rpmstatsd_exporter-0.14.1-1.el7.x86_64.rpmstatsd_exporter-0.15.0-1.el7.x86_64.rpmthanos-0.11.0-1.el7.x86_64.rpmthanos-0.12.0-1.el7.x86_64.rpmthanos-0.12.1-1.el7.x86_64.rpmthanos-0.12.2-1.el7.x86_64.rpm
Источник: habr.com
К списку статей
Опубликовано: 19.06.2020 14:16:52
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

*nix

Системное администрирование

Системное программирование

Rpm

Yum

Mirror

Gpg

Python

Категории

Последние комментарии

© 2006-2020, personeltest.ru