Ещё одна мини-памятка, теперь про создание локального зеркала репозиториев, актуальна для Debian Wheezy, описывается момент, на котором пришлось задуматься - раздача пакетов. Теперь оно работает, однако, вполне возможно, есть лучшие и более правильные способы решение этой задачи. Буду рад критике.
0. Необязательное введение
Однажды захотелось странного - перевести наконец-то компьютерный класс (14 стареньких Core2Duo) на линукс. 1ГБ рам - особо не навиртуализируешься. Ведутся там в основном операционки, компьютерные сети и алгоритмизация и программирование.
Установка - силами студентов в качестве лабораторных работ. Ставили CentOS (тогда ещё 6), теперь стоит по заголовку -
Debian Wheezy.
Настройка/управление -
Ansible, возможно, будет
SaltStack, но это уже другая история. Посмотрим на локальный репозиторий.
1. Создание зеркала с помощью apt-mirror
Создаём его с помощью
apt-mirror. Двум статьям за это большое спасибо:
https://wiki.debian.org/ru/CreateLocalRepo и
http://mydrafts.ru/debian-sozdanie-lokalnogo-repozitoriya-apt-mirror/. Ниже будут отличия от этих статей.
Важное из конфига
/etc/apt/mirror.list:
set base_path /mnt/repo/debian
# Зеркало с пакетами wheezy x64
deb-amd64 ftp://debian.nsu.ru/debian wheezy main contrib non-free
# Зеркало с обновлениями безопасности wheezy x64
deb-amd64 http://security.debian.org/ wheezy/updates main contrib non-free
set base_path - репозитории хранятся на отдельном разделе, монтирующемся в /mnt/repo/, загружаются в debian/.
Зеркала для скачивания репозиториев - debian.nsu.ru и security.debian.org.
С чувством глубокого удовлетворения запускаем
# apt-mirror
Ждём загрузки 40+ ГБ и думаем, что же делать дальше.
2. Настройка веб-сервера (nginx)
А дальше по структуре файлов видим, что нужно предоставить доступ к двум появившимся каталогам:
- /mnt/repo/debian/mirror/debian.nsu.ru/debian/ (в котором есть подкаталог dists/wheezy/)
- /mnt/repo/debian/mirror/security.debian.org/ (в котором есть подкаталог dists/wheezy/updates/)
Сделать это можно с помощью
nginx (или любым другим сервером, но я воспользовался именно им), у которого должен быть доступ на чтение к этим каталогам. Минимальная конфигурация
nginx:
http {
server {
location / {
root /srv/http;
autoindex on;
}
}
}
Здесь
autoindex on; позволяет отдавать файлы из каталога. В каталоге
/srv/http создаём две символические ссылки
debian и
debian-security:
# ln -s /mnt/repo/debian/mirror/debian.nsu.ru/debian/ /srv/http/debian
# ln -s /mnt/repo/debian/mirror/security.debian.org/ /srv/http/debian-security
3. Настройка apt-get на клиентах
Теперь осталось настроить доступ к этим двум репозиториям на клиентах.
Конфиг
/etc/apt/sources.list:
deb http://127.0.0.1/debian wheezy main contrib non-free
deb http://127.0.0.1/debian-security wheezy/updates main contrib non-free
В консоли клиентов:
# apt-get upgrade
# apt-get update
Вот, собственно, и всё. Конечно, остались некоторые непонятные мне моменты, но, как обычно, появились срочные дела, а обновление работает, пришлось успокоиться. Подскажете, как лучше сделать - моя благодарность. Есть непонятные вещи? Спрашивайте, подскажу, что смогу :)