Локальные зеркала репозиториев Linux

Материал из RSU WiKi
Перейти к: навигация, поиск

Содержание

Полное зеркалирование

Воспользуемся rsync. Для начала открываем на файрволе исходящий tcp-порт 873

Рассмотрим настройки зеркалирования на примере SuSE-репозитория Packman для OpenSUSE 10.3. Добавляем в cron.weekly:

rsync -avzrlHP rsync://packman.mirrors.skynet.be/packman/suse/10.3 /srv/ftp/suse/repos/packman/ &

Интеллектуальное зеркалирование

Часто в организации стоит задача экономии интернет-трафика и времени обновлений, при этом держать полное зеркало какого-либо репозитория нет никакой нужды. В таком случае логичным шагом было бы кеширование только тех пакетов, которые реально необходимы для linux-машин. Для этого воспользуемся возможностями замечательного web-сервера Nginx [1].

Создадим виртуальный хост и пропишем в его настройках:

    location /packman/ {
        root /srv/www/vhosts/packman.links2linux.org/;
        error_page 404 = /fetch$uri;
        error_page 403 = /fetch$uri;
    }

    location /packman/suse/10.3/ {
        internal;
        proxy_pass http://packman.mirrors.skynet.be/packman/suse/10.3/;
        proxy_pass http://ftp.gwdg.de/pub/linux/packman/suse/10.3/;

        proxy_store /srv/www/vhosts/packman.links2linux.org/$request_uri;
    }

Обратите внимание на несколько строчек proxy_pass — балансировка нагрузки и переключение между зеркалами осуществляется на веб-сервере прозрачно для клиентских машин.

Для того, чтобы в директории кеша не накапливались старые версии файлов, в cron помещаем команду:

rsync -r --delete-before --existing rsync://packman.mirrors.skynet.be/packman/ /srv/www/vhosts/packman.links2linux.org/

Примечания

  1. gns_ua: mirror on demand

См. также

Ссылки

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты