Подготовим плацдарм на web сервере.
В моём случае это debian.Поэтому:
apt-get install -y apache2 rsync
Поскольку репозиторий у нас будет yum, создадим для него каталог, и договоримся о том, что пользователь от которого вы будете выкладывать пакеты будет "repmgr".
Вообще пользователь может быть любым, я назвал его так для наглядности, и предполагаю, что он уже есть в системе.
Итак создадим каталог, и проставим на него права:
Далее опишем для конфигурацию apache2 для нашего репозитория:mkdir -p /srv/yum chown -R repmgr:repmgr /srv/yum
cat > /etc/apache2/sites-available/yum_repo.conf <<EOFOptions Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all LogLevel warn ErrorLog /var/log/apache2/yum_repo-error.log CustomLog /var/log/apache2/yum_repo-access.log combined ServerSignature On EOF ln -s /etc/apache2/sites-available/yum_repo.conf /etc/apache2/sites-enabled/yum_repo.confServerAdmin yourname@example.com ServerName yum.example.com DocumentRoot /srv/yum Options FollowSymLinks AllowOverride None
И перезапустим apache2:
service apache2 restart Restarting web server: apache2 ... waiting .
Теперь apache2 должен отвечать по запросу http://yum.example.com листингом пустого каталога.
Подготовка окружения на машине source машине
Для подготовки репозитория нам понадобится любой RHEL-like дистрибутив.В данном случае я использую Scientific Linux 6.5.
Установим createrepo
[root@builder-host ~]# yum install createrepo rsync -yПодготовим директории для репозитория
Скопируем RPM'ки и публичный ключ(если он у вас есть)
[builder@builder-host ~]$ mkdir -p ~/repo/rhel/6/x86_64/ [builder@builder-host ~]$ mkdir -p ~/repo/pub/
Подпишем RPM'ки (если у вас есть GPG ключ, и если вы их еще не подписывали)
[builder@builder-host ~]$ cp ~/rpmbuild/RPMS/x86_64/* ~/repo/rhel/6/x86_64/ [builder@builder-host ~]$ cp RPM-GPG-KEY-MYORG.public ~/repo/pub/RPM-GPG-KEY-MYORG
Настало время создать репозиторий
[builder@builder-host ~]$ rpm --resign ~/repo/rhel/6/x86_64/*.rpm Enter pass phrase: Pass phrase is good. /home/builder/repo/rhel/6/x86_64/kernel-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-debug-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-debug-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-debug-devel-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-debuginfo-common-x86_64-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-devel-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-firmware-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/kernel-headers-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/perf-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/perf-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/python-perf-2.6.32-431.el6.myorg.x86_64.rpm: /home/builder/repo/rhel/6/x86_64/python-perf-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm:
[builder@builder-host ~]$ createrepo ~/repo/rhel/6/x86_64/ Spawning worker 0 with 13 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
После обновления RPM'ок, нужно будет обновить файлы метаданных
Репозиторий готов, настало время выливать его в на web server.
[builder@builder-host ~]$ createrepo --update ~/repo/rhel/6/x86_64/ Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
[builder@builder-host ~]$ rsync -avz --delete ~/repo/ repmgr@yum.example.com:/srv/yum/ The authenticity of host 'yum.example.com (123.123.123.123)' can't be established. RSA key fingerprint is c6:bb:05:2f:52:ef:87:52:b6:2a:96:bb:98:3f:eb:7b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'yum.example.com,123.123.123.123' (RSA) to the list of known hosts. repmgr@yum.example.com's password: sending incremental file list ./ pub/ pub/RPM-GPG-KEY-MYORG rhel/ rhel/6/ rhel/6/x86_64/ rhel/6/x86_64/kernel-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-debug-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-debug-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-debug-devel-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-debuginfo-common-x86_64-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-devel-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-firmware-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/kernel-headers-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/perf-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/perf-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/python-perf-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/python-perf-debuginfo-2.6.32-431.el6.myorg.x86_64.rpm rhel/6/x86_64/repodata/ rhel/6/x86_64/repodata/0aba24b2168e97f43d15e1fbbe8243384ecae5f3e0f02505e15eec91b160cf28-other.sqlite.bz2 rhel/6/x86_64/repodata/1ef882fa678df2ba2ab1e8401a702061344d7f3f16f1317bfa53ced680b4efc8-other.xml.gz rhel/6/x86_64/repodata/3750519bcd5461a7c9ec375942df9f6fd35011c48b94f22b8b446ea0372b36fe-filelists.xml.gz rhel/6/x86_64/repodata/89fc2ed9424e6601062d01c77572079fd01558ea9304041a77b765ad5abf52dd-primary.xml.gz rhel/6/x86_64/repodata/bfa923056ac76a89a1958e63046d410e9255dd31ed778dc771db3b44b809c468-primary.sqlite.bz2 rhel/6/x86_64/repodata/d94ca190c7d622d6747b51fcd2acd7fbc0f8f28848eb53477c34c2b365a5fd57-filelists.sqlite.bz2 rhel/6/x86_64/repodata/repomd.xml sent 661676844 bytes received 434 bytes 10101943.18 bytes/sec total size is 688558480 speedup is 1.04
Теперь на целевой системе описываем наш репозиторий, и можно использовать
Теперь можем установить что ни будь из нового репозитория
cat /etc/yum.repos.d/myorg.repo <<EOF [myorg] name=Packages for MY CUSTOM SERVER baseurl=http://yum.example.com/rhel/6/$basearch enabled=1 gpgcheck=1 gpgkey=http://yum.example.com/pub/RPM-GPG-KEY-MYORG EOF
yum install -y kernel-firmware-2.6.32-431.el6.myorg.x86_64
Источники информации:
http://yum.baseurl.org/wiki/RepoCreate
Комментариев нет:
Отправить комментарий